Cały czas widziałem atrybut arii podczas pracy z materiałem kątowym. Czy ktoś może mi wyjaśnić, co oznacza przedrostek aria? ale co najważniejsze, co usiłuję zrozumieć jest różnica między aria-hidden
i hidden
atrybut.
Cały czas widziałem atrybut arii podczas pracy z materiałem kątowym. Czy ktoś może mi wyjaśnić, co oznacza przedrostek aria? ale co najważniejsze, co usiłuję zrozumieć jest różnica między aria-hidden
i hidden
atrybut.
Odpowiedzi:
ARIA (Accessible Rich Internet Applications) określa sposób uczynienia treści i aplikacji internetowych bardziej dostępnymi dla osób niepełnosprawnych.
Ten hidden
atrybut jest nowy w HTML5 i informuje przeglądarki, aby nie wyświetlały elementu. aria-hidden
Nieruchomość mówi Screen-czytniki czy należy ignorować elementu. Więcej informacji znajdziesz w dokumentacji w3:
https://www.w3.org/WAI/PF/aria/states_and_properties#aria-hidden
Korzystanie z tych standardów może ułatwić osobom niepełnosprawnym korzystanie z Internetu.
hidden
oznacza ukryty dla wszystkich. aria-hidden
oznacza ukryte dla czytników ekranu i podobnych narzędzi. Jest to przydatne w przypadku komponentów, które są używane wyłącznie do formatowania i nie zawierają na przykład prawdziwej treści.
hidden
Powinna uniemożliwić czytnikowi ekranu dostęp do zawartości tagu.
aria-hidden
jest poprawna; jednak nie powiedziałeś nic o tym, hidden
aby to odróżnić aria-hidden
. To niestety najlepsza odpowiedź. Uściśl swoje odpowiedzi.
Ukryty atrybut to atrybut logiczny (prawda / fałsz). Gdy ten atrybut zostanie użyty w elemencie, usuwa on wszelkie znaczenie dla tego elementu. Gdy użytkownik wyświetla stronę HTML, elementy z ukrytym atrybutem nie powinny być widoczne.
Przykład:
<p hidden>You can't see this</p>
Atrybuty ukryte w arii wskazują, że element i WSZYSTKIE jego potomki są nadal widoczne w przeglądarce, ale będą niewidoczne dla narzędzi ułatwień dostępu, takich jak czytniki ekranu.
Przykład:
<p aria-hidden="true">You can't see this</p>
Spójrz na to . Powinien odpowiedzieć na wszystkie twoje pytania.
Uwaga: ARIA oznacza Accessible Rich Internet Applications
Źródła: Paciello Group
aria-hidden="true"
jest nadal widoczny w przeglądarce, ale będzie niewidoczny dla narzędzi ułatwień dostępu, takich jak czytniki ekranu.
aria-hidden
służy do ukrywania elementu przed osobami korzystającymi z Twojej witryny za pomocą narzędzi ułatwiających dostęp.
Zgodnie z HTML 5.2 :
Gdy jest określony w elemencie, [
hidden
atrybut] wskazuje, że element nie jest jeszcze lub nie jest już bezpośrednio związany z bieżącym stanem strony, lub że jest używany do zadeklarowania ponownego wykorzystania treści przez inne części strony jako w przeciwieństwie do bezpośredniego dostępu użytkownika.
Przykłady obejmują listę kart, na której niektóre panele nie są odsłonięte, lub ekran logowania, który znika po zalogowaniu się użytkownika. Lubię nazywać te rzeczy „czasowo istotnymi”, tj. Są one odpowiednie na podstawie czasu.
Z drugiej strony ARIA 1.1 mówi:
[
aria-hidden
Stan] wskazuje, czy element jest narażony na interfejs API dostępności.
Innymi słowy, elementy z aria-hidden="true"
są usuwane z drzewa ułatwień dostępu , które najbardziej honoruje technologia wspomagająca, a elementy z aria-hidden="false"
pewnością będą narażone na działanie drzewa. Elementy bez aria-hidden
atrybutu znajdują się w stanie „niezdefiniowany (domyślny)”, co oznacza, że aplikacje klienckie powinny udostępniać je drzewu na podstawie jego renderowania. Np. Klient użytkownika może zdecydować o jego usunięciu, jeśli jego kolor tekstu odpowiada kolorowi tła.
Porównajmy teraz semantykę. Właściwe jest użycie hidden
, ale nie aria-hidden
, elementu, który nie jest jeszcze „czasowo istotny”, ale może stać się istotny w przyszłości (w takim przypadku użyłbyś dynamicznych skryptów do usunięcia hidden
atrybutu). I odwrotnie, należy używać aria-hidden
, ale nie hidden
elementu, który jest zawsze odpowiedni, ale z którym nie chcesz zaśmiecać interfejsu API dostępności; takie elementy mogą obejmować „styl wizualny”, takie jak ikony i / lub obrazy, które nie są niezbędne do konsumpcji przez użytkownika.
W semantyka mieć przewidywalne skutki w środkach przeglądarek / użytkowników. Rozróżniam to dlatego, że zachowanie agenta użytkownika jest zalecane , ale nie wymagane przez specyfikacje.
hidden
Atrybut powinien ukryć element z wszystkich prezentacjach, w tym drukarek i czytników ekranu (zakładając, że urządzenia te cześć HTML specyfikacje). Jeśli chcesz usunąć element z drzewa ułatwień dostępu, a także mediów wizualnych, hidden
załatwi sprawę. Nie używaj jednak hidden
tylko dlatego, że chcesz tego efektu. Zadaj sobie pytanie, czy hidden
najpierw jest poprawne semantycznie (patrz wyżej). Jeśli hidden
nie jest to poprawne semantycznie, ale nadal chcesz wizualnie ukryć element, możesz użyć innych technik, takich jak CSS.
Elementy z aria-hidden="true"
nie są narażone na drzewo ułatwień dostępu, więc na przykład czytniki ekranu ich nie ogłaszają. Tę technikę należy stosować ostrożnie, ponieważ zapewni ona różne wrażenia różnym użytkownikom: dostępne programy klienckie nie będą ich ogłaszać / renderować, ale nadal są renderowane na agentach wizualnych. To może być dobra rzecz, jeśli jest wykonane poprawnie, ale może być wykorzystywane.
Na koniec istnieje różnica w składni między tymi dwoma atrybutami.
hidden
jest atrybutem boolowskim , co oznacza, że jeśli atrybut jest obecny, jest prawdziwy - bez względu na jakąkolwiek wartość może mieć - a jeśli atrybut jest nieobecny, jest fałszywy. W prawdziwym przypadku najlepszą praktyką jest albo nie używanie żadnej wartości ( <div hidden>...</div>
), albo pustej wartości ciągu ( <div hidden="">...</div>
). Bym nie polecam hidden="true"
, bo ktoś odczyt / aktualizację kodu może wywnioskować, że hidden="false"
miałoby skutek odwrotny, który jest po prostu błędne.
aria-hidden
, przeciwnie, jest wyliczonym atrybutem , pozwalającym na skończoną listę wartości. Jeśli aria-hidden
atrybut jest obecny, jego wartość musi być "true"
albo "false"
. Jeśli chcesz mieć stan „niezdefiniowany (domyślny)”, usuń atrybut całkowicie.
Dalsza lektura: https://github.com/chharvey/chharvey.github.io/wiki/Hidden-Content