Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Доступность для компонентов Tabs и TabsItem #3337

Merged
merged 9 commits into from
Oct 7, 2022

Conversation

k-egor-smirnov
Copy link
Contributor

Closes #2533

  • Добавил роль tablist для компонента Tabs, tab для компонента TabsItem;
  • В соответствии с документацией WAI-ARIA обработал все клавиатурные события;
  • Покрыл компонент Tabs тестами все обрабатываемые события клавиатуры;
  • Добавил warn в компонент TabsItem, если не были переданы все атрибуты для поддержки доступности
  • Добавил warn в компонент Group, если он используется как tabpanel и в нем отсутствуют необходимые атрибуты. Не уверен, что это необходимо, так как tabpanel может быть все, что угодно

@codesandbox-ci
Copy link

codesandbox-ci bot commented Sep 22, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit e3f8610:

Sandbox Source
VKUI - default example Configuration

@k-egor-smirnov k-egor-smirnov force-pushed the k-egor-smirnov/a11y/tabs branch from bf962fb to 75d01be Compare September 22, 2022 16:50
@github-actions
Copy link
Contributor

github-actions bot commented Sep 22, 2022

size-limit report 📦

Path Size
JS 259.71 KB (+0.57% 🔺)
JS (gzip) 78.2 KB (+0.77% 🔺)
JS (brotli) 65.94 KB (+0.62% 🔺)
JS, unstable 31.69 KB (+0.36% 🔺)
CSS 290.93 KB (0%)
CSS (gzip) 39.29 KB (0%)
CSS (brotli) 31.23 KB (0%)
CSS, unstable 1.22 KB (0%)

@github-actions
Copy link
Contributor

👀 Styleguide deployed

See the styleguide for this PR at https://vkcom.github.io/VKUI/pull/3337/

@github-actions
Copy link
Contributor

github-actions bot commented Sep 22, 2022

Code coverage

lines3916 / 502377.96%
statements3986 / 512277.82%
functions840 / 107278.35%
branches3660 / 504172.60%
branchesTrue0 / 0100.00%

Generated by 🚫 dangerJS against e3f8610

@k-egor-smirnov k-egor-smirnov force-pushed the k-egor-smirnov/a11y/tabs branch 5 times, most recently from a5b0d64 to 51e6f35 Compare September 23, 2022 09:34
@k-egor-smirnov k-egor-smirnov force-pushed the k-egor-smirnov/a11y/tabs branch from 51e6f35 to a4be4f6 Compare September 26, 2022 13:45
@k-egor-smirnov k-egor-smirnov marked this pull request as ready for review September 26, 2022 14:06
@k-egor-smirnov k-egor-smirnov requested a review from a team as a code owner September 26, 2022 14:06
Copy link
Contributor

@inomdzhon inomdzhon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Крутотень!!! 🔥 Спасибо 🙏

src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
src/components/Group/Group.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.test.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.test.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.test.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
inomdzhon
inomdzhon previously approved these changes Oct 6, 2022
eugpoloz
eugpoloz previously approved these changes Oct 6, 2022
@k-egor-smirnov k-egor-smirnov dismissed stale reviews from eugpoloz and inomdzhon via 5678888 October 6, 2022 15:34
@k-egor-smirnov
Copy link
Contributor Author

Спасибо за ревью! Посчитал необходимым возможность отключения нового поведения, если используются другие роли для доступности. Например, когда таб является ссылкой, он не должен иметь role="tab"

src/components/TabsItem/TabsItem.tsx Outdated Show resolved Hide resolved
src/components/TabsItem/TabsItem.tsx Outdated Show resolved Hide resolved
src/components/TabsItem/TabsItem.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
src/components/Tabs/Tabs.tsx Outdated Show resolved Hide resolved
@inomdzhon
Copy link
Contributor

Спасибо за ревью! Посчитал необходимым возможность отключения нового поведения, если используются другие роли для доступности. Например, когда таб является ссылкой, он не должен иметь role="tab"

@k-egor-smirnov кстати, по API не вижу возможности сделать таб ссылкой 🤔

@k-egor-smirnov
Copy link
Contributor Author

Спасибо за ревью! Посчитал необходимым возможность отключения нового поведения, если используются другие роли для доступности. Например, когда таб является ссылкой, он не должен иметь role="tab"

@k-egor-smirnov кстати, по API не вижу возможности сделать таб ссылкой 🤔

Действительно, типизация (в отличие от реализации) не позволяет это сделать, но, тем не менее, иногда табы должны быть ссылками. Это описано, например, в этом гайде по табам в интерфейсах, на которую я ориентировался: https://inclusive-components.design/tabbed-interfaces/.

Copy link
Contributor

@inomdzhon inomdzhon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо 🙏 ❤️‍🔥

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Enhancement][a11y] Добавить доступность для Tabs и TabsItem
5 participants