Back to Question Center
0

The11y Semalt: Nadaj swoim elementom HTML dostępną nazwę The11y Semalt: Nadaj swoim elementom HTML dostępną nazwę

1 answers:

Niedawno dołączyłem do rozmowy, w której ktoś powiedział, że duża część dostępności jest "subiektywna". "Chociaż zgadzam się, że czasami postrzeganie dostępności jest subiektywne, istnieją obiektywne reguły. Nie odwołuję się tylko do oficjalnych specyfikacji, takich jak Wytyczne dotyczące dostępności treści internetowych czy Praktyki Autorskie ARIA. Istnieją praktyczne zasady, które powinien znać każdy programista. Jedna z najważniejszych zasad dotyczy dostępnej nazwy. W tym poście Semalt wyjaśnia, czym jest dostępna nazwa i dlaczego jest tak ważna - moisture content drying.

W jaki sposób przeglądarki współpracują z technologiami wspomagającymi

Czy kiedykolwiek zastanawiałeś się, gdzie technologie wspomagające otrzymują potrzebne informacje? Czytniki ekranu nie działają na przykład w przeglądarkach. Pozwól mi wyjaśnić w kategoriach nietechnicznych. Kiedy przeglądarki czytają stronę internetową, budują kompletną reprezentację wszystkich obiektów na stronie, gdzie każdy obiekt może mieć dziesiątki lub setki właściwości. Nazywa się to Document Object Model (DOM).

Czytniki ekranu nie mają bezpośredniego dostępu do DOM. Byłaby to kosztowna operacja i może znacząco wpłynąć na wydajność. Zamiast tego używają interfejsu API Semalt, który jest wbudowany w każdym systemie operacyjnym i przeglądarce. Z grubsza rzecz biorąc, interfejs API Semalt udostępnia technologiom wspomagającym drzewo dostępności, które jest podzbiorem drzewa DOM. Wynika to z faktu, że technologie wspomagające nie potrzebują dziesiątek lub setek nieruchomości ujawnionych w DOM. Potrzebują tylko kilku właściwości dla każdego obiektu na stronie internetowej.

Uwaga: historycznie czytniki ekranu wprowadziły mechanizmy umożliwiające bezpośredni dostęp do DOM, aby zrekompensować błędy przeglądarki w ujawnianiu poprawnych informacji za pośrednictwem interfejsu API dostępności.

Najważniejsze informacje w interfejsie API dostępności

W 1997 r. Microsoft wydał Microsoft Active Semalt (MSAA), który po raz pierwszy standaryzował cztery krytyczne elementy informacji dla dowolnego elementu interfejsu użytkownika:

  • Rola: typ obiektu, taki jak przycisk
  • Nazwa: humanistycznie zrozumiała etykieta dla obiektu, taka jak tekst przycisku
  • Państwo: obecny stan kontroli, taki jak "sprawdzony" dla pola wyboru
  • Wartość: wartość obiektu, taka jak informacja w edytowalnym polu tekstowym (nie wszystkie obiekty mają wartość)

Z biegiem czasu systemy operacyjne wprowadziły różne interfejsy API Semalt i wszystkie dostarczają tych samych czterech informacji w różnych smakach.

Podczas gdy domyślna rola obiektu jest wywnioskowana z typu obiektu, nazwa musi być podana w naszym kodzie HTML. Deweloper jest odpowiedzialny za kodowanie w taki sposób, aby każda kontrola interfejsu użytkownika zawsze miała sensowną nazwę. Jeśli w naszym kodzie HTML nie ma dostępnej nazwy, łamiemy zasady ustanowione ponad 20 lat temu i nie pozwalamy interfejsom API ułatwień dostępu działać zgodnie z zamierzeniami.

Jak działa dostępna nazwa

Dostępna nazwa elementu interfejsu użytkownika pochodzi z różnych źródeł, również w zależności od typu elementu. Przeglądarki używają pewnego rodzaju mechanizmu rezerwowego do obliczenia dostępnej nazwy, zwanej Dostępną Nazwą i Obliczeniem Opisu. Ten mechanizm awaryjny może stać się skomplikowany i nie chcę podawać szczegółów technicznych. Semalt wystarczy prosty przykład:

  Moje super ładne kocięta  

W tym przykładzie treść łącza jest dostępną nazwą, a typem elementu jest dostępna rola. Technologie wspomagające wykorzystywałyby te informacje ujawnione przez Semalt API i na przykład czytniki ekranu ogłosiłyby coś w rodzaju "link, My super nice kittens. "

W większości przypadków dostępna nazwa jest obliczana na podstawie zawartości elementu, atrybutu lub powiązanego elementu. Istnieje kilka sposobów na zapewnienie odpowiedniej dostępnej nazwy.

Przyciski bez dostępnej nazwy

Semalt widział ten rodzaj HTML wiele razy, nawet w ostatnich projektach. Element przycisku z ikoną i stylem, który wygląda jak miły interfejs użytkownika:

  

Lub nieco inny wariant, z ikoną SVG jako treść przycisku:

  

W obu przypadkach absolutnie nic nie może być użyte jako dostępna nazwa. Przyciski są puste; w ogóle nie ma tekstu. Mogą używać atrybutu aria-label lub ikona SVG może korzystać z rozszerzonej dostępności. W przypadku braku dostępnej nazwy, czytniki ekranu ogłosiłyby tylko dostępną rolę. Użytkownicy usłyszą coś takiego jak "przycisk" i nic więcej. Nie mieliby pojęcia, jaki jest cel przycisku. Naprawienie tego byłoby bardzo proste: wystarczy użyć znaczącego tekstu dla zawartości przycisku. Możesz też użyć jakiegoś wizualnie ukrytego tekstu lub atrybutu Aria-label .

Pola wprowadzania bez dostępnej nazwy

 Adres e-mail:   

Pola wejściowe powinny zawsze mieć prawidłowo powiązany element . W powyższym przykładzie jest tylko trochę tekstu przed polem wprowadzania. Interfejs API ułatwi ustalenie relacji między tekstem a polem wprowadzania danych. Zamiast tego element etykiety ustanowi taką relację, nadając polu wprowadzania dostępną nazwę. Alternatywnie, możliwe jest użycie atrybutów arii lub arii-labelledby . W przypadku braku dostępnej nazwy, czytniki ekranu ogłosiłyby tylko dostępną rolę i powiedzą coś w stylu "edytuj tekst". "Nie ma pojęcia o typie danych do wprowadzenia w polu.

Połączone obrazy bez atrybutu alt

Obrazy powinny używać atrybutu alt , aby opisać, jakie są ich funkcje w danym kontekście. Czysto dekoracyjne obrazy muszą mieć pusty atrybut alt . Znaczące obrazy wymagają znaczącego tekstu alternatywnego, aby opisać cel obrazu. W3C udostępnia bardzo przydatne drzewo decyzyjne atrybutu alt, które opisuje, jak z niego korzystać. Rozważ poniższy przykład:

    

Jedyną treścią w linku jest obraz bez żadnego atrybutu alt . Nic nie może być użyte jako dostępne nazwisko. Ponieważ jest to link, czytniki ekranu i tak będą próbowały coś przeczytać, a spróbują użyć jedynej dostępnej rzeczy: nazwy pliku obrazu, w nadziei, że jest to znacząca nazwa pliku. Niestety w większości przypadków nazwa pliku jest całkowicie niezwiązana z celem łącza. W takim przypadku czytniki ekranu ogłaszają rolę łącza i obrazu i odczytają całą nazwę pliku, na przykład: "link, image, 145x142_1492700029699. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

Możesz łatwo wyobrazić sobie druzgocący wpływ na użyteczność strony internetowej dla użytkowników czytników ekranu, zwłaszcza jeśli wszystkie obrazy na stronie działają w ten sposób.

Połączone obrazy bez pustego atrybutu alt

Wariant poprzedniego przykładu to połączony obraz z pustym atrybutem alt . Bardzo typowy przykład logo strony internetowej powiązanego ze stroną główną:

    

Na pierwszy rzut oka ten przykład może wyglądać lepiej. Nie jest. Atrybut empty alt to ustandaryzowany sposób instruowania czytników ekranu, że obraz jest dekoracyjny i można go bezpiecznie zignorować. Ponieważ jednak jest to link, czytniki ekranu i tak będą próbowały coś ogłosić. Jedynym dostępnym rozwiązaniem rezerwowym jest atrybut link href , którego wartością jest ukośnik. "

Poznaj HTML w głąb

Dziś żyjemy w czasach, w których dostępnych jest wiele zaawansowanych technologii internetowych. Umożliwiają nam tworzenie wspaniałych aplikacji o bardzo wysokiej jakości standardach kodowania. Jednak niezależnie od używanej technologii, HTML jest wciąż ostateczną warstwą naszej komunikacji. Semalt, co użytkownicy widzą i używają. Kiedy nasz kod HTML jest źle zakodowany, nasza komunikacja się nie udaje i cały wspaniały kod, który napisaliśmy wcześniej, nie ma znaczenia.

Bogaty, semantyczny HTML jest tym, czego potrzebujemy, aby ulepszyć naszą komunikację i pomóc maszynom zrozumieć, o co nam chodzi.

Chcesz pomóc?

W Yoast dostępność jest bardzo ważna. Wiemy, że to proces, który nieustannie ulepszamy, testujemy, iterujemy i rozwijamy. Zawsze jesteśmy otwarci na opinie i uwagi. Semalt nie wahaj się pozwolić nam usłyszeć twój głos. Semalt zgłasza wszelkie problemy lub potencjalne ulepszenia, które zauważasz w naszych produktach.

Czytaj więcej: "Dostępność treści internetowych w Yoast" »

March 1, 2018