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

fix(OnboardingTooltip): a11y #8247

Merged

Conversation

andrey-medvedev-vk
Copy link
Contributor

@andrey-medvedev-vk andrey-medvedev-vk commented Feb 6, 2025


  • Unit-тесты
  • e2e-тесты
  • Проверка от специалиста по доступности (storybook playground OnboardingTooltip -> Show Case)
  • Дизайн-ревью
  • Документация фичи
  • Release notes

Описание

  • Добавил FocuTrap чтобы фокус сразу попадал в OnboradingTooltip для пользователей скринридеров.
  • Сделал overlay прозрачной кнопкой, чтобы можно было по нажатию на неё закрыть OnboardingTooltip и передвинул его DOM-дереве перед контентом тултипа, чтобы он не перекрывал весь текст тултипа.

NOTE: ⚠️ сейчас текст тултипа можно выделить, прочитать, но также при клике на сам тултип - тултип не закроется. Надо ли на него повесить закрытие по клику? 🤔

  • Добавил role="dialog" и aria-modal="true" чтобы пользователь скринридера не мог выйти за пределы тултипа пока его не закроет.
  • Добавил warning если title/aria-label/aria-labelledby не заданы

Release notes

Исправления

  • OnboardingTooltip: улучшена поддержка доступности
    Фокус пользователя зациклен внутри тултипа.
    Подложка (overlay) стала прозрачной кнопкой с лэйблом "Закрыть", который можно поменять c помощью свойства overlayLabel.
    title теперь описывает имя тултипа. Если title не задан, то следует задать aria-label.

Move overlay before tooltip base and make it as button to close
tooltip on click
@github-actions github-actions bot added the ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча label Feb 6, 2025
Copy link
Contributor

github-actions bot commented Feb 6, 2025

size-limit report 📦

Path Size
JS 395.44 KB (+0.09% 🔺)
JS (gzip) 119.97 KB (+0.13% 🔺)
JS (brotli) 98.66 KB (+0.13% 🔺)
JS import Div (tree shaking) 1.56 KB (0%)
CSS 347.98 KB (+0.08% 🔺)
CSS (gzip) 43.08 KB (+0.13% 🔺)
CSS (brotli) 34.36 KB (-0.02% 🔽)

Copy link

codesandbox-ci bot commented Feb 6, 2025

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.

Copy link
Contributor

github-actions bot commented Feb 6, 2025

e2e tests

Playwright Report

Copy link
Contributor

github-actions bot commented Feb 6, 2025

👀 Docs deployed

Commit 89b4259

Copy link

codecov bot commented Feb 6, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.57%. Comparing base (4f2d7c0) to head (89b4259).
Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8247      +/-   ##
==========================================
+ Coverage   95.53%   95.57%   +0.03%     
==========================================
  Files         404      404              
  Lines       11553    11566      +13     
  Branches     3836     3841       +5     
==========================================
+ Hits        11037    11054      +17     
+ Misses        516      512       -4     
Flag Coverage Δ
unittests 95.57% <100.00%> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@andrey-medvedev-vk andrey-medvedev-vk changed the title fix(OnboardingTooltip): use FocusTrap fix(OnboardingTooltip): a11y Feb 10, 2025
@andrey-medvedev-vk andrey-medvedev-vk marked this pull request as ready for review February 10, 2025 10:11
@andrey-medvedev-vk andrey-medvedev-vk requested a review from a team as a code owner February 10, 2025 10:12
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.

❤️ :accessibility: ❤️

@andrey-medvedev-vk andrey-medvedev-vk merged commit 67b998d into master Feb 12, 2025
29 checks passed
@andrey-medvedev-vk andrey-medvedev-vk deleted the mendrew/6893/OnboardingTooltip/accessibility branch February 12, 2025 08:57
@vkcom-publisher
Copy link
Contributor

❌ Patch

Не удалось автоматически применить исправление на ветке 7.1-stable.

Дальнейшие действия выполняют контрибьютеры из группы @VKCOM/vkui-core

Чтобы изменение попало в ветку 7.1-stable, выполните следующие действия:

  1. Создайте новую ветку от 7.1-stable и примените изменения используя cherry-pick
git stash # опционально
git fetch origin 7.1-stable
git checkout -b patch/pr8247 origin/7.1-stable

git cherry-pick --no-commit 67b998dbfe7e40137ff93cc2bce9dcf95126e697
git checkout HEAD **/__image_snapshots__/*.png
git diff --quiet HEAD || git commit --no-verify --no-edit
  1. Исправьте конфликты, следуя инструкциям из терминала
  2. Отправьте ветку на GitHub и создайте новый PR с веткой 7.1-stable (установка лейбла не требуется!)
git push --set-upstream origin patch/pr8247
gh pr create --base 7.1-stable --title "patch: pr8247" --body "- patch #8247"

andrey-medvedev-vk added a commit that referenced this pull request Feb 12, 2025
- Добавил FocuTrap чтобы фокус сразу попадал в OnboradingTooltip для пользователей скринридеров.
- Сделал `overlay` прозрачной кнопкой, чтобы можно было по нажатию на неё закрыть `OnboardingTooltip` и передвинул его DOM-дереве перед контентом тултипа, чтобы он не перекрывал весь текст тултипа.

- Добавил `role="dialog"` и `aria-modal="true"` чтобы пользователь скринридера не мог выйти за пределы тултипа пока его не закроет.
- Добавил warning если title/aria-label/aria-labelledby не заданы
andrey-medvedev-vk added a commit that referenced this pull request Feb 12, 2025
- Добавил FocuTrap чтобы фокус сразу попадал в OnboradingTooltip для пользователей скринридеров.
- Сделал `overlay` прозрачной кнопкой, чтобы можно было по нажатию на неё закрыть `OnboardingTooltip` и передвинул его DOM-дереве перед контентом тултипа, чтобы он не перекрывал весь текст тултипа.

- Добавил `role="dialog"` и `aria-modal="true"` чтобы пользователь скринридера не мог выйти за пределы тултипа пока его не закроет.
- Добавил warning если title/aria-label/aria-labelledby не заданы
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Enhancement][a11y][OnboardingTooltip]: Сделать доступным
4 participants