Poziom
A
Od wersji
WCAG 2.0
Pozycje
106 / 193
/ Kryterium WCAG

2.4.4 Cel linku (w kontekście)

Link musi mówić, dokąd prowadzi. Przeczytane osobno „kliknij tutaj” nie mówi nic.

/ Czego wymaga

Użytkownicy czytników ekranu często przechodzą po stronie od linku do linku albo otwierają listę wszystkich linków, żeby znaleźć ten właściwy. W obu przypadkach słyszą tekst linku prawie bez otoczenia. Link o treści więcej, tutaj albo szczegóły, a tym bardziej link z samą ikoną bez tekstu, niczego im nie mówi. Osoby sterujące głosem też potrzebują nazwy, którą mogą wypowiedzieć, a każdy, kto przegląda stronę wzrokiem, korzysta na linkach mówiących, dokąd prowadzą.

Cel musi wynikać z samego tekstu linku albo z tekstu razem z kontekstem, który da się określić programowo: z tego samego zdania, akapitu, elementu listy lub komórki tabeli z jej nagłówkami albo z atrybutu aria-label lub aria-labelledby na linku. Czytaj więcej na końcu akapitu o jednym temacie może przejść dzięki kontekstowi. Nie przechodzi, gdy nic w pobliżu go nie objaśnia. Kryterium wyłącza linki, których cel byłby niejasny dla wszystkich użytkowników.

/ Jak strony go nie spełniają

  • Link zawiera tylko ikonę albo obraz bez tekstu alternatywnego, więc nie ma nazwy, a czytnik ekranu z braku innych danych odczytuje adres URL.
  • Każda z zajawek aktualności kończy się linkiem Czytaj więcej, a link stoi w osobnym elemencie, z dala od tytułu, do którego należy.
  • Ikona mediów społecznościowych jest narysowana jako tło CSS albo SVG, a link wokół niej nie ma dostępnej nazwy.
  • Tekstem linku jest goły adres URL albo nazwa pliku w rodzaju doc_final_v3.pdf.
  • Kilka linków o tej samej treści, na przykład Pobierz, prowadzi do różnych plików.

/ Jak sprawdzić samodzielnie

  1. Przejdź po stronie klawiszem Tab i czytaj tylko tekst każdego linku, gdy dostaje fokus. Zadaj sobie pytanie, czy wiesz, dokąd prowadzi.
  2. Otwórz listę linków: w darmowym czytniku ekranu NVDA naciśnij Insert+F7, w VoiceOver użyj pokrętła. Przeczytaj listę od góry do dołu. Niejasne i powtarzające się nazwy od razu rzucają się w oczy.
  3. Dla każdego niejasnego linku sprawdź, czy brakującą część podaje jego własne zdanie, akapit, element listy albo komórka tabeli.
  4. Obejrzyj linki z samą ikoną w DevTools, gdzie panel Accessibility pokazuje wyliczoną nazwę. Pusta nazwa jest błędem.
  5. Uruchom darmowe narzędzie, na przykład WAVE albo axe DevTools, żeby wypisać linki bez tekstu.

/ Jak to naprawić

  • Wpisz cel do tekstu linku: Raport roczny (PDF) zamiast kliknij tutaj.
  • W linkach z obrazem wpisz cel w atrybucie alt elementu img. W linkach z ikoną SVG dodaj aria-label do elementu a albo umieść w nim wizualnie ukryty element span z tekstem.
  • Zostaw powtarzane Czytaj więcej, ale rozszerz jego nazwę wizualnie ukrytym elementem span z tytułem artykułu albo atrybutem aria-labelledby, który wskazuje na link i na tytuł.
  • Albo zrób linkiem sam tytuł i usuń osobne Czytaj więcej.
  • Gdy widoczny tekst zostaje krótki, zadbaj, by dostępna nazwa nadal zawierała widoczne słowa, tak żeby osoby sterujące głosem mogły wypowiedzieć to, co widzą.

/ Co sprawdza nasz skaner

Temu kryterium odpowiadają cztery testy. W źródle HTML link_text_missing liczy linki i przyciski bez tekstu, aria-label, title i alt obrazu, a link_text_generic te, których cały tekst to jedna z krótkiej listy angielskich fraz, na przykład click here. Na wyrenderowanej stronie ambiguous-link-text zgłasza identyczne nazwy prowadzące w różne miejsca, a reguła link-name z axe-core zgłasza linki bez nazwy. Żaden test nie czyta zdania wokół linku.

/ Kto je łamie, według naszych pomiarów

Zmierzone podmioty łamiące to kryterium, najwięcej wystąpień na górze
PodmiotSektorWystąpieniaWynik
Politechnika Śląskaeducation · PL2052
Bundesministerium für Bildung und Forschunggovernment · DE488
Bundeszentrale für politische Bildunggovernment · DE4410
Radomcity · PL422
Bundesratgovernment · DE3614
Narodowy Instytut Zdrowia Publicznegohealth · PL3625
Robert Koch-Instituthealth · DE2310
Los Angeles Countygovernment · US209
Bundesministerium der Justizgovernment · DE197
State of Washingtongovernment · US189
Zielona Góracity · PL187
Rzeszówcity · PL158
Universität Heidelbergeducation · DE1521
Ludwig-Maximilians-Universität Müncheneducation · DE1413
Uniwersytet Warszawskieducation · PL144
Bostoncity · US136
Komisja Nadzoru Finansowegogovernment · PL1317
Centers for Disease Controlhealth · US128
Poznańcity · PL111
Amtraktransport · US104
Las Vegascity · US108
Düsseldorfcity · DE99
Narodowy Fundusz Zdrowiahealth · PL918
Ohio State Universityeducation · US96
Bundesagentur für Arbeitgovernment · DE816
Library of Congressculture · US730
Teatr Wielki Opera Narodowaculture · PL73
Uniwersytet Jagiellońskieducation · PL71
Uniwersytet Śląskieducation · PL79
LA Metrotransport · US617
Narodowy Instytut Dziedzictwaculture · PL66
Wrocławcity · PL62
Krakówcity · PL512
Department of Educationgovernment · US475
Deutsche Rentenversicherunggovernment · DE45
Muzeum Narodowe w Warszawieculture · PL411
NASAgovernment · US419
Nürnbergcity · DE42
Phoenixcity · US41
Rybnikcity · PL46
Urząd Ochrony Danych Osobowychgovernment · PL46
Chicago Transit Authoritytransport · US34
Gdańskcity · PL32
Hamburgcity · DE323
Hannovercity · DE310
Nashvillecity · US312
Państwowa Komisja Wyborczagovernment · PL315
Policjagovernment · PL312
Szczecincity · PL32
Sąd Najwyższygovernment · PL314
Bundestaggovernment · DE217
Bydgoszczcity · PL27
Dresdencity · DE215
Medicarehealth · US251
New Orleanscity · US27
Poczta Polskagovernment · PL216
Portlandcity · US287
Stuttgartcity · DE26
Uniwersytet Ekonomiczny w Krakowieeducation · PL215
Uniwersytet Gdańskieducation · PL218
AGHeducation · PL154
Austincity · US120
Baltimorecity · US17
Berlincity · DE141
Biblioteka Narodowaculture · PL116
Bundesministerium der Finanzengovernment · DE113
Bundesministerium für Gesundheitgovernment · DE146
Bundesnetzagenturgovernment · DE19
Bundesregierunggovernment · DE14
Bundesverfassungsgerichtgovernment · DE118
Department of Laborgovernment · US146
Detroitcity · US140
Deutsche Bahntransport · DE15
Deutsche Nationalbibliothekculture · DE123
Freie Universität Berlineducation · DE17
Gdyniacity · PL17
Główny Urząd Statystycznygovernment · PL117
Harris Countygovernment · US119
Houstoncity · US17
Karlsruher Institut für Technologieeducation · DE119
Katowicecity · PL110
Koleje Mazowieckietransport · PL117
Krajowa Administracja Skarbowagovernment · PL15
Ministerstwo Sprawiedliwościgovernment · PL125
Münchencity · DE122
Najwyższa Izba Kontroligovernment · PL141
Olsztyncity · PL18
PKP Intercitytransport · PL12
Philadelphiacity · US18
Politechnika Warszawskaeducation · PL112
Politechnika Łódzkaeducation · PL15
Polski Instytut Sztuki Filmowejculture · PL17
RWTH Aacheneducation · DE119
Rzecznik Praw Obywatelskichgovernment · PL142
Social Security Administrationgovernment · US1-
State of Georgiagovernment · US153
Szkoła Główna Handlowaeducation · PL112
Technische Universität Müncheneducation · DE114
Trybunał Konstytucyjnygovernment · PL114
University of California, Berkeleyeducation · US171
University of Floridaeducation · US123
University of Texas at Austineducation · US121
Uniwersytet Marii Curie-Skłodowskiejeducation · PL19
Warszawacity · PL120
Warszawski Uniwersytet Medycznyeducation · PL113
Łódźcity · PL13

Jedna strona na podmiot, mierzona automatycznie w tygodniowym cyklu. Jeśli podmiot coś naprawił od ostatniego pomiaru, zmiana będzie widoczna przy następnym, a każdy podmiot może odpowiedzieć na swojej stronie.

/ Pytania o to kryterium

Czy „Czytaj więcej” zawsze narusza WCAG?

Nie. Na poziomie A cel może wynikać z tekstu linku razem z kontekstem, więc Czytaj więcej wewnątrz akapitu albo elementu listy, który nazywa temat, może przejść. Nie przechodzi, gdy kontekst nie jest powiązany programowo, na przykład gdy link stoi w osobnym kontenerze. Surowsze kryterium 2.4.9 na poziomie AAA wymaga, by tekst linku wystarczał sam.

Lepiej użyć aria-label czy wizualnie ukrytego tekstu w linku?

Jedno i drugie daje linkowi dostępną nazwę. Wizualnie ukryty tekst jest częścią treści, więc utrzymuje się go razem z nią. Atrybut aria-label zastępuje technologiom wspomagającym cały tekst wewnątrz linku, więc musi powtarzać widoczne słowa i być zmieniany razem z nimi. Przy linkach z samą ikoną sprawdzi się każdy sposób. Przy linkach z widocznym tekstem bezpieczniej jest dodać ukryty tekst.

Czy identyczny tekst linków jest problemem?

Jest, gdy linki prowadzą w różne miejsca, bo na liście linków nic ich wtedy nie odróżnia. Linki prowadzące do tego samego celu mogą i powinny mieć ten sam tekst. Osobne kryterium, 3.2.4 Spójna identyfikacja, wymaga, by komponenty o tej samej funkcji były oznaczane spójnie w całym zestawie stron.