Poziom
A
Od wersji
WCAG 2.1
Pozycje
57 / 193
/ Kryterium WCAG

2.5.3 Etykieta w nazwie

Słowa widoczne na przycisku lub przy polu muszą być częścią nazwy, którą słyszy technologia wspomagająca, żeby osoba wypowiadająca je na głos trafiła w tę kontrolkę, o którą jej chodziło.

/ Czego wymaga

Kontrolka ma dwie nazwy. Pierwsza to tekst, który widać na ekranie, a druga to nazwa dostępna, czyli ta, którą przeglądarka przekazuje technologii wspomagającej. Kryterium wymaga, żeby druga zawierała pierwszą zawsze wtedy, gdy kontrolka ma widoczną etykietę złożoną z tekstu lub z obrazu tekstu. Osoby, które obsługują komputer głosem, wypowiadają słowa z ekranu, na przykład „kliknij Szukaj”, a program rozpoznający mowę porównuje je z nazwą dostępną. Jeśli nazwa brzmi inaczej, polecenie nie robi nic.

Nazwa może być dłuższa od etykiety, o ile widoczne słowa się w niej znajdują, a W3C zaleca umieszczać je na samym początku. Wielkość liter i interpunkcja nie muszą się zgadzać. Przycisk, na którym jest sama ikona, nie podlega temu kryterium, bo nie ma etykiety tekstowej, którą nazwa miałaby zawierać. Kryterium nie wymienia żadnych wyjątków. Kontrolka nie spełnia wymogu, gdy aria-label lub aria-labelledby zastępuje widoczny tekst innym sformułowaniem, także synonimem o tym samym znaczeniu.

/ Jak strony go nie spełniają

  • Na przycisku widać napis „Szukaj”, a w kodzie ma on aria-label="Znajdź produkty".
  • Link „Czytaj więcej” dostaje aria-label, który opisuje artykuł i pomija słowa „Czytaj więcej”.
  • Pole ma widoczną etykietę „Telefon”, a nadpisuje ją aria-label o treści „Numer kontaktowy”.
  • Przycisk zrobiony z obrazu tekstu pokazuje słowo „Wyślij”, a jego tekst alternatywny brzmi „Prześlij formularz”.
  • Atrybut aria-labelledby wskazuje ukryty tekst, którego brzmienie różni się od tekstu widocznego na kontrolce.

/ Jak sprawdzić samodzielnie

  1. Przejdź przez stronę i wypisz wszystkie kontrolki, na których widać tekst: przyciski, linki, karty oraz pola z widoczną etykietą.
  2. Wyszukaj w źródle strony atrybuty aria-label i aria-labelledby. To w tych dwóch miejscach nazwa najczęściej rozjeżdża się z widocznym tekstem.
  3. Zbadaj każdą z tych kontrolek w narzędziach deweloperskich przeglądarki i otwórz panel Accessibility. Porównaj wyliczoną nazwę (Name) ze słowami na ekranie.
  4. Włącz sterowanie głosem wbudowane w system operacyjny i powiedz „kliknij”, a po nim widoczne słowa. Kontrolce, która nie reaguje, trzeba przyjrzeć się dokładniej.

/ Jak to naprawić

  • Usuń aria-label i pozwól, żeby nazwą był tekst znajdujący się wewnątrz elementu button lub a.
  • Jeśli potrzebna jest dłuższa nazwa, zacznij ją od widocznych słów, na przykład aria-label="Czytaj więcej o raporcie rocznym" na linku z napisem „Czytaj więcej”.
  • Możesz też zostawić nazwę równą widocznemu tekstowi, a dodatkową informację dołączyć atrybutem aria-describedby, który dodaje opis i nie zmienia nazwy.
  • W przypadku obrazu tekstu wpisz w atrybucie alt dokładnie te słowa, które widać na obrazie.
  • Pole nazwij elementem label powiązanym z nim atrybutem for i nie nadpisuj tej etykiety atrybutem aria-label.

/ Co sprawdza nasz skaner

Nasz test label-in-name działa na wyrenderowanej stronie i obejmuje kontrolki, do których da się dojść klawiaturą. Gdy nazwa dostępna pochodzi z aria-label lub aria-labelledby, porównuje ją z tekstem widocznym na samej kontrolce, pomijając wielkość liter i interpunkcję, i zgłasza nazwę, która tego tekstu nie zawiera. Nie odczyta tekstu z obrazu i nie porównuje pola z osobną etykietą wyświetloną obok niego.

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

Zmierzone podmioty łamiące to kryterium, najwięcej wystąpień na górze
PodmiotSektorWystąpieniaWynik
San Franciscocity · US1928
Nürnbergcity · DE182
Szkoła Główna Handlowaeducation · PL1812
Gliwicecity · PL1713
Poznańcity · PL171
Politechnika Łódzkaeducation · PL165
Deutsche Bahntransport · DE95
Baltimorecity · US87
Elblągcity · PL720
Leipzigcity · DE626
PKP Intercitytransport · PL62
Policjagovernment · PL512
Tychycity · PL520
Warszawski Uniwersytet Medycznyeducation · PL513
Bostoncity · US46
Uniwersytet Mikołaja Kopernikaeducation · PL46
Hamburgcity · DE323
LA Metrotransport · US317
Las Vegascity · US38
Muzeum Narodowe w Warszawieculture · PL311
Warszawacity · PL320
Narodowy Instytut Dziedzictwaculture · PL26
Philadelphiacity · US28
State of Georgiagovernment · US253
Universität Heidelbergeducation · DE221
Uniwersytet Ekonomiczny w Krakowieeducation · PL215
Uniwersytet Łódzkieducation · PL29
Austincity · US120
Biblioteka Narodowaculture · PL116
Bundesagentur für Arbeitgovernment · DE116
Bundesministerium für Bildung und Forschunggovernment · DE18
Bundestaggovernment · DE117
Cook Countygovernment · US113
Denvercity · US151
Deutsche Rentenversicherunggovernment · DE15
Gdańskcity · PL12
Hannovercity · DE110
Houstoncity · US17
Indianapoliscity · US118
Komisja Nadzoru Finansowegogovernment · PL117
Library of Congressculture · US130
Ohio State Universityeducation · US16
Opolecity · PL18
Pacjent.gov.plhealth · PL19
Phoenixcity · US11
Prezydent RPgovernment · PL115
Płockcity · PL152
Robert Koch-Instituthealth · DE110
Rzecznik Praw Obywatelskichgovernment · PL142
Social Security Administrationgovernment · US1-
Stuttgartcity · DE16
Travis Countygovernment · US137
Universität Hamburgeducation · DE136
Uniwersytet Śląskieducation · PL19
Veterans Affairsgovernment · US133
Zakład Ubezpieczeń Społecznychgovernment · PL127
Zielona Góracity · PL17

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

Czym różni się widoczna etykieta od nazwy dostępnej?

Etykieta to to, co człowiek widzi na kontrolce lub obok niej: tekst albo obraz tekstu. Nazwa dostępna to to, co przeglądarka przekazuje technologii wspomagającej, wyliczone z zawartości elementu, elementu label, tekstu alternatywnego, aria-label lub aria-labelledby. Zwykle obie są takie same. Rozchodzą się wtedy, gdy atrybut ARIA nadpisuje widoczny tekst.

Czy nazwa dostępna musi być identyczna z widocznym tekstem?

Nie. Nazwa musi zawierać widoczny tekst i może mieć dodatkowe słowa. W3C radzi stawiać widoczne słowa na początku, bo część programów do rozpoznawania mowy dopasowuje polecenie od początku nazwy. Różnice w wielkości liter i interpunkcji się nie liczą. Nazwa, w której widoczne słowo zastąpiono synonimem albo je pominięto, nie spełnia kryterium.

Czy kryterium Etykieta w nazwie dotyczy przycisków z samą ikoną?

Tylko wtedy, gdy na kontrolce widać tekst. Przycisk z samą lupą nie ma widocznej etykiety, więc nazwa nie ma czego zawierać i to kryterium go nie obejmuje. Taki przycisk nadal potrzebuje nazwy dostępnej na mocy kryterium 4.1.2 Nazwa, rola, wartość. Gdy obok ikony pojawia się tekst, ten tekst musi znaleźć się w nazwie.