Правилно използване на WAI-ARIA състояния?

Кой е най-добрият вариант при динамично прилагане на състоянията на ARIA? Питам само, тъй като не винаги е лесно да се дешифрира правилното използване само от спецификациите.

  • Трябва ли да приложите false като състояние, когато можете? С това имам предвид, има ли разлика между изричното казване на false или липсата на атрибута, ако да, каква?

  • Трябва ли тези атрибути да присъстват при първоначалното зареждане на DOM или да се превключват само при взаимодействие с тях? Имам предвид предимно aria-states, а не aria-properties или aria-roles, тъй като е по-малко вероятно да се променят.

Пример 1

<div role="tablist">
  <a href="/bg#" role="tab" aria-controls="panel-1" aria-selected="true">Tab 1</a>
  <a href="/bg#" role="tab" aria-controls="panel-2" aria-selected="false">Tab 2</a>
</div>

срещу (забележка: aria-selected не присъства, когато false)

<div role="tablist">
  <a href="/bg#" role="tab" aria-controls="panel-1" aria-selected="true">Tab 1</a>
  <a href="/bg#" role="tab" aria-controls="panel-2">Tab 2</a>
</div>

Пример 2

<div>
  <div id="panel-1" role="tabpanel" aria-hidden="false"></div>
  <div id="panel-2" role="tabpanel" aria-hidden="true" style="display:none"></div>
</div>

срещу (забележка: атрибутът е премахнат отново, aria-hidden не присъства, когато false)

<div>
  <div id="panel-1" role="tabpanel"></div>
  <div id="panel-2" role="tabpanel" aria-hidden="true" style="display:none"></div>
</div>

трябва ли изобщо да се използва aria-hidden, тъй като ще бъде видим в даден момент?


Използвам style=display:none като пример, вероятно бихте искали да използвате .active и/или .visuallyhidden клас вместо това.


person darcher    schedule 07.04.2015    source източник
comment
Изглежда, че имате три въпроса, които не са тясно свързани: 1. false стойност (на която се опитах да отговоря), 2 първоначално зареждане на DOM, 3. използване на aria-hidden. Мисля, че би имало смисъл да създадете отделни въпроси за двата допълнителни въпроса (и да ги редактирате тук). Съгласен ли си?   -  person unor    schedule 08.04.2015
comment
да, сега като споменахте ценностните разлики, това изглежда са отделни въпроси.   -  person darcher    schedule 10.04.2015


Отговори (1)


Зависи от неговия тип стойност:

  • #P2#
    #P3#
    #P4#
    #P5#
    #P6#
  • aria-hidden има тип стойност "true" /false", където стойността по подразбиране винаги е false.

    → Така че не е нужно да указвате aria-hidden, ако стойността му е false.

person unor    schedule 08.04.2015
comment
А, дори не се сетих да проверя за различни стойности. Това изяснява много, благодаря! - person darcher; 10.04.2015