Дисклеймер: это обзор раннего предложения новых функций. Синтаксис может измениться в будущем или от функций могут отказаться.
Я слежу за развитием предложения focusgroup от OpenUI и жду реализации в браузерах, а опросы показывают интерес сообщества к этой функции. К моему сожалению, предложение перевели в статус неактивного.
Недавно было опубликовано новое предложение Scoped Focusgroup — следующую итерациею focusgroup. Некоторые идеи оригинального предложения отложили, а остальные немного переработали. Что изменилось:
- Поддержка CSS-свойств отложена на будущее;
- Поддержка навигации по двум осям отложена на будущее;
- Добавлена область действия для управление фокусом только там, где это предполагается исходя из ролей элементов.
В целом синтаксис и поведение атрибута focusgroup и его значений сохраняется (за исключением навигации по двум осям). Но добавляется набор новых значений для определения области действия, которые соответствуют ролям ARIA.
Новый синтаксис выглядит так:
<div focusgroup="<behavior> [inline|block] [wrap] [no-memory]">
<!-- ... -->
</div>
-
<behavior> — роль элемента и поведение фокуса. Принимает значения toolbar, tablist, radiogroup, listbox, menu, menubar, в будущем grid;-
[inline|block] — направление навигации: inline — горизонтально, block — вертикально, зависит от направления письма;-
[wrap] — циклический перенос между крайними элементами. Если значение wrap указано, то перенос включён;-
[no-memory] — сброс последнего сфокусированного элемента при выходе за пределы виджета. Если значение no-memory указано, фокус сбрасывается.<div
focusgroup="toolbar inline wrap"
aria-label="Форматирование текста"
>
<button type="button">
Жирный
</button>
<button type="button">
Курсив
</button>
<button type="button">
Подчёркнутый
</button>
</div>
В примере элемент получает роль toolbar (из значения
<behavior>), кнопки удаляются из последовательности табуляции, добавляются обработчики клавиатуры для горизонтальной навигации с переносом между крайними кнопками.Другие примеры и подробности можно посмотреть в самом предложении. Выглядит многообещающе, а изменения вполне логичные и правильные. Буду следить за развитием дальше и приносить новости.
#html #ui