Skip to content

Commit

Permalink
fix(ActionSheet): add a11y documentation for ActionSheetItem (#7394)
Browse files Browse the repository at this point in the history
h2. Описание

Необходимо проверить общую цифровую доступность компонентов `ActionSheet` и `ActionSheetItem`.

h2. Изменения

- Написал документацию по цифровой доступности для компонента `ActionSheetItem`
- Поправил пример с `selectable` элементами в `storybook`
- Поменял пример с `selectable` элементами в `styleguide`. Взял из дизайна в фигме
- Проверил общую доступность компонента в `styleguide` и `storybook` через `VoiceOver` и `NVDA`
  • Loading branch information
EldarMuhamethanov authored and actions-user committed Aug 20, 2024
1 parent 31e05aa commit ef2e89b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 52 deletions.
10 changes: 5 additions & 5 deletions packages/vkui/src/components/ActionSheet/ActionSheet.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,11 @@ export const WithSelectable: Story = {
...Base,
args: {
items: [
{ selectable: true, children: 'Лучшие друзья', defaultChecked: true },
{ selectable: true, children: 'Родственники' },
{ selectable: true, children: 'Коллеги' },
{ selectable: true, children: 'Друзья по школе' },
{ selectable: true, children: 'Друзья по вузу' },
{ name: 'menu', selectable: true, children: 'Лучшие друзья', defaultChecked: true },
{ name: 'menu', selectable: true, children: 'Родственники' },
{ name: 'menu', selectable: true, children: 'Коллеги' },
{ name: 'menu', selectable: true, children: 'Друзья по школе' },
{ name: 'menu', selectable: true, children: 'Друзья по вузу' },
],
},
};
62 changes: 15 additions & 47 deletions packages/vkui/src/components/ActionSheet/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,58 +139,26 @@ const openSubtitle = () =>
);

const SelectableActionSheet = () => {
const [filter, setFilter] = useState('best');
const [filter, setFilter] = useState('Нормальная');
const onChange = (e) => {
setFilter(e.target.value);
};

const speeds = ['0.25x', '0.5x', '0.75x', 'Нормальная', '1.25x', '1.5x', '2x', '3x'];

return (
<ActionSheet onClose={onClose} toggleRef={selectableTargetRef}>
<ActionSheetItem
onChange={onChange}
checked={filter === 'best'}
name="filter"
value="best"
selectable
>
Лучшие друзья
</ActionSheetItem>
<ActionSheetItem
onChange={onChange}
checked={filter === 'relatives'}
name="filter"
value="relatives"
selectable
>
Родственники
</ActionSheetItem>
<ActionSheetItem
onChange={onChange}
checked={filter === 'collegues'}
name="filter"
value="collegues"
selectable
>
Коллеги
</ActionSheetItem>
<ActionSheetItem
onChange={onChange}
checked={filter === 'school'}
name="filter"
value="school"
selectable
>
Друзья по школе
</ActionSheetItem>
<ActionSheetItem
onChange={onChange}
checked={filter === 'university'}
name="filter"
value="university"
selectable
>
Друзья по вузу
</ActionSheetItem>
<ActionSheet header="Изменить скорость видео" onClose={onClose} toggleRef={selectableTargetRef}>
{speeds.map((speed) => (
<ActionSheetItem
onChange={onChange}
checked={filter === speed}
name="filter"
value={speed}
selectable
>
{speed}
</ActionSheetItem>
))}
</ActionSheet>
);
};
Expand Down
6 changes: 6 additions & 0 deletions packages/vkui/src/components/ActionSheetItem/Readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
Элемент списка `ActionSheet`. Если в `ActionSheetItem` передать `autoCloseDisabled={true}`, то при клике на эту опцию `ActionSheet` не будет автоматически вызывать переданный в него `onClose`, закрыть его будет необходимо самостоятельно.

## Цифровая доступность (a11y)

- При задании параметру `selectable` значение `true` для корректной работы важно задать всем `ActionSheetItems` одинаковое значение параметра `name`.
Обусловлено это тем, что в реализации используется нативный `input[type='radio']` и по пунктам можно навигировать как по обычным radio-кнопкам
- При задании `selectable` значение `true` в реализации используется тег `"label"`. В остальных случаях используется тег `"div"`

0 comments on commit ef2e89b

Please sign in to comment.