Dostępnik o uprzęży dla AI
AI robi obecnie złą robotę przy programowaniu wspomaganym. Korzysta ze złych wzorców, myli pojęcia, halucynuje i generalnie nie rozwiązuje problemu pogarszania dostępności. Bo jest źle używana.
W branżowych kanałach, które śledzę, coraz częściej pojawia się krytyka sztucznej inteligencji w dostępności. Erik Kroes pisze o halucynacjach i wybielaniu się niepełnosprawnościami. Anna E. Cook ostrzega przed rozmytą odpowiedzialnością za wyniki generowane przez modele. Coraz głośniej mówi się, że automatyzacja audytu to ściema, a nakładki to wciąż to samo oszustwo co trzy lata temu.
I dobrze, że to słychać.
Tylko że — jak to zwykle bywa — diabeł siedzi w szczegółach. Bo zbyt łatwo wpadamy w pułapkę: „SI jest bezużyteczna” vs „SI zbawi dostępność”. A prawda leży gdzieś pomiędzy i wymaga oddzielenia kilku rzeczy, które lubimy wrzucać do jednego worka.
Alt teksty — mrzonka o ręcznym pisaniu
Zacznę od rzeczy, która zmieniła moje myślenie.
Przez lata powtarzałem: każdy obrazek musi mieć porządny tekst alternatywny pisany przez człowieka. I nadal tak uważam — w idealnym świecie.
Tylko że świat nie jest idealny. Miliony stron, miliardy obrazków. Serwisy społecznościowe, platformy handlowe, systemy CMS, gdzie treści wrzucają ludzie bez pojęcia o dostępności. Apelowanie, żeby „każdy ręcznie pisał teksty alternatywne” to wołanie na puszczy. To nigdy, po prostu nigdy nie nastąpi.
I tu sztuczna inteligencja faktycznie ma coś do zaoferowania. Nie doskonałe teksty alternatywne — ale lepsze niż nic. I to „lepsze niż nic” w skali, której człowiek nie ogarnie. Problem w tym, że modele nie mają jeszcze dobrych wzorców, nie rozumieją kontekstu, halucynują. Sam model, owszem, ma swoje uprzedzenia i ślepe punkty. Ale to nie znaczy, że trzeba go odrzucić.
Znaczy, że trzeba go odpowiednio pokierować.
Model ma uprzedzenia, ale agent z regułami może go naprowadzić
I tu dochodzę do sedna.
Sam model językowy jest jak surowy silnik — ma swoją wiedzę, ale i swoje słabości. Uprzedzenia wynikające z danych treningowych, tendencję do halucynacji, brak zrozumienia kontekstu. To wszystko prawda.
Ale model to jeszcze nie narzędzie. Pomiędzy modelem a działaniem jest cała warstwa. I tu muszę opisać dwie rzeczy, bo inaczej się nie dogadamy:
Skill (umiejętność, reguła) — to zestaw instrukcji, przykładów i kryteriów, które opisują dziedzinę. Skill mówi modelowi: „tak wygląda dobry tekst alternatywny dla zdjęcia produktu”, „to są wyjątki od reguły kontrastu”, „w ten sposób sprawdzasz, czy heading jest poprawnie oznaczony”. Skills to wiedza domenowa, którą ładujesz do modelu, żeby wiedział, o co właściwie pytasz. Pisałem już o nich na tym blogu i konsekwentnie je rozwijam na swoje potrzeby.
Agent — to program, który korzysta z tej wiedzy. Agent uruchamia model, ładuje odpowiednie skille, podejmuje decyzje co dalej, sprawdza poprawność wyników, a jeśli trzeba — woła człowieka. Agent orkiestruje cały proces: najpierw sprawdź w skillu reguły, potem wyślij zapytanie do modelu, potem zweryfikuj odpowiedź, jeśli wątpliwa — zapytaj jeszcze raz, jeśli nadal — zgłoś do człowieka.
Dopiero razem mają sens. Sam model może mieć uprzedzenia, ale jeśli agent przed wygenerowaniem opisu obrazka załaduje skill z przykładami poprawnych tekstów alternatywnych i regułami z WCAG — rezultat będzie znacznie lepszy. Jeśli po wygenerowaniu sprawdzi wynik przez inny model albo przez zestaw kryteriów — jeszcze lepszy. Jeśli w razie wątpliwości zapyta człowieka — bezpieczny.
W tym kontekście pojawia się jeszcze jedno pojęcie, które warto znać: harness, czyli uprząż. To warstwa oprogramowania, która otacza model z każdej strony i kontroluje, co do niego wchodzi i co z niego wychodzi. Harness nie mówi modelowi, jaka jest dobra reguła WCAG — to robi skill. Harness pilnuje, żeby model w ogóle dostał właściwe instrukcje, a nie działał na sucho. Żeby nie przekroczył limitu tokenów. Żeby odpowiedź miała właściwy format. Żeby w razie powtarzających się błędów przełączył na inny model albo w ogóle przerwał i zawołał człowieka.
Skill to wiedza. Agent to wykonawca. Harness to uprząż, która trzyma całość w ryzach. Bez niej nawet najlepszy skill nie pomoże, bo model zrobi, co chce.
Konkretny przykład: test skilla Intopii na Streamlicie
Żeby nie było gołosłownie — sam opisywałem w Dostępniku.
Firma Intopia (specjaliści od dostępności z Australii) opracowała darmowy Web Accessibility Skill — zestaw reguł i kryteriów akceptacji dla agenta AI. Ja wziąłem ten skill i puściłem go na prawdziwej aplikacji webowej — czacie na Streamlicie — z agentem (Claude Code), który miał go załadowany.
Efekt? Agent znalazł siedem poważnych naruszeń WCAG 2.2 AA:
· zły język strony (niezgodny z rzeczywistą treścią)
· zaburzona hierarchia nagłówków
· brak etykiet dla elementów interaktywnych w DOM
· kontrast 3,69:1 zamiast wymaganych 4,5:1
· literówki w treści
· dwa problemy tkwiące głębiej w platformie (Streamlit), poza kontrolą autora
Pięć z siedmiu zostało naprawionych automatycznie. Streamlit sam w sobie wymagał ręcznej interwencji.
Czy skill zastąpił eksperta? Nie. Automatyzacja łapie 30–40% problemów dostępnościowych, resztę musi ocenić człowiek. Ale jako pierwsza linia obrony — znalazł i naprawił więcej, niż przeciętny programista wie o WCAG.
To jest właśnie różnica między „wrzuciłem model do zadania” a „zbudowałem narzędzie, które rozumie dziedzinę”.
Nakładki i sztuczna inteligencja — to samo ostrzeżenie
Porównanie do nakładek dostępnościowych nie jest tu przypadkowe. I chcę je pociągnąć dalej, bo jest bardzo celne.
Nakładka na niedostępnej stronie nic nie da. Co gorsza — może zaszkodzić. Zablokować fokus klawiatury, wejść w kolizję z czytnikiem ekranu, uśpić czujność zarządcy strony, który myśli „mam nakładkę, jest dobrze”.
Złe wdrażanie sztucznej inteligencji w dostępności działa dokładnie tak samo. Samo wrzucenie modelu do procesu — bez reguł, bez nadzoru, bez rozumienia kontekstu — nie tylko nie pomoże, ale może aktywnie zaszkodzić. Wygeneruje błędne teksty alternatywne, które użytkownik czytnika ekranu przeczyta z pełnym zaufaniem. Zgłosi fałszywe alarmy w audycie albo — gorzej — przeoczy realne bariery. Zatuszuje problem, zamiast go rozwiązać.
Dlatego wdrażanie sztucznej inteligencji w dostępność wymaga pracy z głową i dostarczenia dobrych narzędzi. Nie wystarczy kupić model i go odblokować. Trzeba zbudować wokół niego warstwę, która wie, o co w dostępności chodzi. Skille. Reguły. Sprawdzanie poprawności. Człowieka w pętli.
Nie magik, tylko elektronarzędzie
Sztuczna inteligencja w dostępności nie jest magikiem w cylindrze, który przecina niedostępną stronę na pół i składa ją z powrotem dostępną. To jest elektronarzędzie. Może przyspieszyć pracę, ale w rękach kogoś, kto nie wie, co robi — zrobi więcej szkody niż pożytku.
Potrzebujemy zdrowego sceptycyzmu. I uważności, żeby nie wpaść z jednej skrajności w drugą: ani hurraoptymizm głoszący, że modele same rozwiążą problem, ani totalne odrzucenie, które nie dostrzega, że odpowiednia warstwa reguł i nadzoru może zdziałać naprawdę wiele.
Serwer MCP — praktyczne narzędzie, które z tego wyrosło
Wszystko, o czym pisałem powyżej — skille, agenty, harness — złożyło się w konkretne narzędzie, które sam zaprojektowałem i udostępniłem: WCAG 2.2 MCP Server.
MCP (Model Context Protocol) to protokół, który pozwala agentom AI łączyć się z zewnętrznymi źródłami wiedzy i narzędziami. Zamiast wrzucać całą wiedzę o WCAG do promptu (co jest drogie i nieprecyzyjne), agent może na żywo zapytać serwer MCP o konkretne kryterium sukcesu, technikę, definicję — i dostać gotową, zweryfikowaną odpowiedź.
To dokładnie to, co opisałem wcześniej: skill (wiedza o WCAG) zapakowany w agenta (serwer MCP) z harnessem (API key, Cloud Run, logowanie). Bez halucynacji, bo serwer nie generuje treści — zwraca to, co jest w danych źródłowych W3C.
Co serwer umie?
Po podłączeniu agent (Claude Code, Cursor, VS Code, własny skrypt) może:
· search(”CAPTCHA”) — znajdzie wszystkie SC powiązane z CAPTCHA
· get_sc(”1.1.1”) — zwróci pełną treść kryterium sukcesu po polsku i angielsku
· get_technique(”G143”) — pobierze konkretną technikę implementacji
· get_understanding(”1.1.1”) — objaśnienie z przykładami
· graph_query(”Accordion”) — zapyta o powiązania w grafie wiedzy
· check_contrast(”#fff”, “#ccc”) — sprawdzi kontrast na żywo
W sumie 18 narzędzi opartych o pełne dane WCAG 2.2: 87 kryteriów sukcesu, 520 technik, 101 definicji, 55 kategorii komponentów i 33 wzorce implementacyjne.
Jak to podłączyć?
Serwer działa pod adresem https://mcp.dostepnik.com.pl/mcp i wymaga klucza API w nagłówku.
Dla VS Code — dodaj do settings.json:
“mcp”: {
“servers”: {
“WCAG”: {
“url”: “https://mcp.dostepnik.com.pl/mcp”,
“type”: “http”,
“headers”: {
“X-API-Key”: “xNDXZkMxquraDF0N8rT3-0Y-ArNdZdeK7fgS1K9d1A8”
}
}
}
}
Dla Claude Desktop:
{
“mcpServers”: {
“wcag22”: {
“url”: “https://mcp.dostepnik.com.pl/mcp”,
“headers”: {
“X-API-Key”: “xNDXZkMxquraDF0N8rT3-0Y-ArNdZdeK7fgS1K9d1A8”
}
}
}
}
Z cURL:
# 1. Inicjalizacja sesji
curl -X POST https://mcp.dostepnik.com.pl/mcp \
-H “Accept: application/json” -H “Content-Type: application/json” \
-H “X-API-Key: xNDXZkMxquraDF0N8rT3-0Y-ArNdZdeK7fgS1K9d1A8” \
-d ‘{”jsonrpc”:”2.0”,”id”:1,”method”:”initialize”,”params”:{”protocolVersion”:”2024-11-05”,”capabilities”:{},”clientInfo”:{”name”:”test”,”version”:”1.0”}}}’
# 2. Kopiujesz mcp-session-id z nagłówka odpowiedzi
# 3. Zadajesz pytanie
curl -X POST https://mcp.dostepnik.com.pl/mcp \
-H “Accept: application/json” -H “Content-Type: application/json” \
-H “X-API-Key: xNDXZkMxquraDF0N8rT3-0Y-ArNdZdeK7fgS1K9d1A8” \
-H “mcp-session-id: <SESSION_ID>” \
-d ‘{”jsonrpc”:”2.0”,”id”:2,”method”:”tools/call”,”params”:{”name”:”list_scs”,”arguments”:{}}}’
Możesz też po prostu poprosić agenta o dodanie serwera MCP z podanego wcześniej adresu. Sprawdziłem na kilku i każdy sobie poradził. Oczywiście zapytają także o klucz API, ale ten też masz w treści. Ten klucz działa dla wszystkich i będę obserwował obciążenia serwera. Mam nadzieję, że nie będę musiał ograniczać dostępu.
Dlaczego to robi różnicę?
Bo to nie jest kolejna nakładka. To nie jest model, który halucynuje przepisy. To zweryfikowane dane WCAG 2.2, podane w formie, którą agent AI może bezpośrednio wykorzystać — bez domyślania się, bez wymyślania, bez ryzyka, że wygeneruje odpowiedź, która brzmi dobrze, ale jest błędna.
Sam korzystam z niego regularnie: zamiast przekopywać się przez stronę W3C, pytam serwer. Zamiast zgadywać, czy SC 2.4.11 ma zastosowanie do mojego przypadku — sprawdzam w kategorii Focus. Zamiast polegać na tym, że model „gdzieś tam widział” technikę G143 — pobieram ją wprost ze źródła.
I to jest właśnie ta różnica między „zapytaj model, może będzie wiedział” a „mam narzędzie, które wie na pewno”.
A jeżeli opowiesz mi, w czym ten MCP Ci pomógł, to będzie mi bardzo miło. Od kopa zrobił dla mnie dostępną krzyżówkę ze wszystkimi dostępnościowymi bajerami. Oczywiście nie sam MCP, tylko agent korzystający z jego funkcji.
Mam też plan na dalszy rozwój. Jednak poczekam na odzew, bo dla siebie mam na własnym komputerze i nie potrzebuję go udostępniać w sieci. Jeżeli nikt się nie zainteresuje, to i tak zostanie do użytku, ale pewnie nie będę go dalej rozszerzał.
Wieści o dostępności
Fundacja Kinematograf oraz Teatr im. Stanisława Ignacego Witkiewicza w Zakopanem zapraszają na dostępny spektakl „Na przełęczy” z cyklu Tatrzańskie — 22 sierpnia 2026 (sobota), godzina 19:15. Spektakl zostanie zaprezentowany z audiodeskrypcją, tłumaczeniem na polski język migowy (PJM) oraz pętlą indukcyjną. Organizatorzy oferują także transport w promieniu 50 km (zgłoszenia do 19 sierpnia). Rezerwacje: tel/SMS 609 10 77 88, e-mail a.czapnik@fundacjakinematograf.pl.
Więcej: fundacjakinematograf.pl
Wilco Fiers z Deque Systems opublikował artykuł o tym, dlaczego połączenie normy EN 17161 (Design for All — zarządzanie dostępnością) z WCAG to ważny krok naprzód. WCAG to horyzont — kierunek, w którym zmierzasz. EN 17161 to droga — oznakowanie, które utrzymuje cię na kursie. EN 17161 jest w recenzji jako zharmonizowany standard EU, co czyni go najpewniejszą drogą do spełnienia wymagań EAA. Jeśli organizacja już używa ISO 9001 lub 27001 — można podpiąć EN 17161 do istniejących procesów.
Źródło: deque.com
Kat Homan na łamach Smashing Magazine prześwietla modne UI pod kątem przydatności w aplikacjach mental health. Teza jest prosta: trendy UI są optymalizowane pod przyciąganie uwagi, a aplikacje wellbeingowe potrzebują czegoś przeciwnego — redukcji wysiłku, zaufania, schronienia. Neo-brutalist layouty, ukryta nawigacja i abstrakcyjne ikony dodają obciążenia poznawczego. Framework ewaluacyjny autorki sprowadza się do jednego pytania: „Czy ten trend obniża koszt korzystania z aplikacji, gdy użytkownik ma najmniej energii?”
Źródło: smashingmagazine.com
Podcast Design Domination (Creative Boost) wyjaśnia, dlaczego dostępny szablon w InDesign to nie magiczna kula — nie gwarantuje dostępnego PDF-a. Potrzeba przede wszystkim umiejętności korzystania z narzędzia: stylów akapitowych, master pages, prawidłowego tagowania. Autorzy przestrzegają przed AI Alt-text generator w InDesign („nie jest dobry”) i przypominają, że zawsze jest praca do zrobienia w Acrobat — ręczne sprawdzanie tagów, reading order, preflight fixy.
Źródło: creative-boost.com
WAI opublikowało nową metodologię ewaluacji WCAG — WCAG-EM 2.0. Narzędzie dla audytorów i organizacji chcących prowadzić systematyczne oceny zgodności z WCAG.
Źródło: w3.org
Deque Systems opublikował raport pokazujący, że AI-generated code znacząco zwiększa ryzyko długu dostępnościowego. Wnioski: automatyzacja kodu bez reguł dostępnościowych to prosta droga do kryzysu. I właśnie mój serwer MCP ma ten dług obniżać.
Źródło: deque.com
WebAIM Conference 2026 — 15–16 września, online, darmowa. Dwudniowa konferencja o dojrzewaniu praktyki dostępności cyfrowej. Napisy live i tłumaczenie na ASL. Rejestracja: conference.webaim.org
UXPALOOZA 2026 — 25 września, online. Jednodniowa konferencja o przecięciu UX i AI organizowana przez UXPA International. Wśród prelegentów Beth Chappell, Leo Hoar, Jason Mesut i Llewyn Paine.
Więcej: uxpa.org
I to by było na tyle. Sponsorem serwera MCP była pogoda nad Bałtykiem przez 4 tygodnie mojego urlopu. Z góry dziękuję za wyrazy współczucia. Kąpałem się 2 razy, a do pasa wlazłem 1 dodatkowy raz. Ale miejsce świetne i gospodarze super, więc nie żałuję. Teraz wracam i mam naszkicowane kilka kolejnych numerów Dostępnika. Ciepłości, ale też bez przesady.

