Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating a11y checks
Search
Sobolev Nikita
September 25, 2019
Programming
0
97
Automating a11y checks
Sobolev Nikita
September 25, 2019
Tweet
Share
More Decks by Sobolev Nikita
See All by Sobolev Nikita
PythoNN – Александр Гончаров
sobolevn
0
49
PythoNN – Андрей Пронин
sobolevn
0
95
PythoNN: Василий Рябов – "Парсинг бинарных данных с помощью ctypes, или пишем на питоне как на Си"
sobolevn
0
200
GitHub Planet - OpenSource
sobolevn
0
240
Polymorphism and Typeclasses
sobolevn
2
130
New GitHub Features
sobolevn
0
63
Problems of static analysis in Python
sobolevn
0
130
Announcing typed-linter
sobolevn
0
220
About GitHub Stars
sobolevn
0
180
Other Decks in Programming
See All in Programming
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.9k
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
430
Introduction to C Extensions
sylph01
3
120
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
160
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
250
LINE messaging APIを使ってGoogleカレンダーと連携した予約ツールを作ってみた
takumakoike
0
130
Honoとフロントエンドの 型安全性について
yodaka
7
1.5k
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
9
2.6k
Swift Testingのモチベを上げたい
stoticdev
2
210
The Price of Micro Frontends… and Your Alternatives @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
100
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
160
Featured
See All Featured
BBQ
matthewcrist
87
9.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Embracing the Ebb and Flow
colly
84
4.6k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Designing for humans not robots
tammielis
250
25k
Optimizing for Happiness
mojombo
377
70k
The World Runs on Bad Software
bkeepers
PRO
67
11k
The Cost Of JavaScript in 2023
addyosmani
47
7.5k
Transcript
X Никита Соболев github.com/sobolevn
>_ X Автоматизируем проверку доступности 2
Доступность? 3
99.9% 4
99.99% 5
99.999% 6
Что проверяем? 7
Что проверяем? > Наш сервис – работает! 7
Что проверяем? > Наш сервис – работает! > Наш сервис
работает правильно 7
Что проверяем? > Наш сервис – работает! > Наш сервис
работает правильно > Наш сервис работает быстро 7
Что проверяем? > Наш сервис – работает! > Наш сервис
работает правильно > Наш сервис работает быстро > Наш сервис работает везде 7
SRE 8
9
9
9
10
Наш сервис работает для всех 11
>_ X Автоматически! 12
500 13
Тесты 14
Медленно 15
Мониторинг производительности 16
Неудобно 17
None
None
None
UX 21
>_ X Есть специфика 22
Мы живем в идеальном мире 23
Мы живем в идеальном мире 23
Мы живем в не идеальном мире 24
Многие не могут воспользоваться вашим сервисом по многим причинам! 25
Не все люди обладают (и хотят обладать) современной техникой 26
Пост Цифровой Мир 27
История про самокат 28
29
Нужно думать головой 30
Не все люди знают язык вашего сервиса 31
i18n / l10n 32
Что проверяем? 33
Что проверяем? > Должны быть возможность выбора языка 33
Что проверяем? > Должны быть возможность выбора языка > Онлайн
переводчики должны работать 33
Что проверяем? > Должны быть возможность выбора языка > Онлайн
переводчики должны работать > Письмо: слева направо / справа налево 33
Что проверяем? > Должны быть возможность выбора языка > Онлайн
переводчики должны работать > Письмо: слева направо / справа налево > Форматы чисел, дат, времени 33
https://github.com/ w3c/i18n-tests 34
Не везде быстрое интернет соединение 35
> Next billion users 36
https://github.com/ ai/size-limit 37
None
"Slow connection" mode 39
None
None
None
None
None
Некоторые люди выключают js 43
"Disabled JS" mode 44
Selenium: --disable-javascript 45
None
None
Есть люди с особыми потребностями 47
48
49
Можно сделать лучше 50
Можно сделать лучше > https://github.com/YozhikM/ stylelint-a11y 50
Можно сделать лучше > https://github.com/YozhikM/ stylelint-a11y > https://github.com/ierhyna/ stylelint-no-indistinguishable- colors
50
Можно сделать лучше > https://github.com/YozhikM/ stylelint-a11y > https://github.com/ierhyna/ stylelint-no-indistinguishable- colors
> https://github.com/kristerkari/ stylelint-high-performance- animation 50
Попробуйте заказать 51
Вы не сможете! 52
Вы не сможете! > Навигация не размечена aria и role
52
Вы не сможете! > Навигация не размечена aria и role
> Везде убраны outline 52
Вы не сможете! > Навигация не размечена aria и role
> Везде убраны outline > У картинок нет подписей 52
Вы не сможете! > Навигация не размечена aria и role
> Везде убраны outline > У картинок нет подписей > События без клавиатуры 52
Есть линтеры 53
Есть линтеры > https://github.com/maranran/ eslint-plugin-vue-a11y 53
Есть линтеры > https://github.com/maranran/ eslint-plugin-vue-a11y > https://www.npmjs.com/package/ eslint-plugin-jsx-a11y 53
Есть плагины для тестов 54
Есть плагины для тестов > https://github.com/nickcolley/ jest-axe 54
Есть плагины для тестов > https://github.com/nickcolley/ jest-axe > https://github.com/helen-dikareva/ axe-testcafe
54
Полноценные решения 55
Полноценные решения > https://github.com/webhintio/hint 55
None
None
Полноценные решения > https://github.com/webhintio/hint > https://github.com/pa11y/pa11y 57
pa11y('http://example.com/', { actions: [ 'set field #username to exampleUser', 'set
field #password to password1234', 'click element #submit', 'wait for path to be /myaccount', ] }) 58
Аудиты! 59
>_ X В завершении 60
Вы хотите, чтобы ваши сервисы работали всегда. 61
Так сделайте их доступными для всех! 62
https://github.com/ wemake-services/ wemake-vue-template 63
tlg.name/ opensource_findings 64
Вопросы? github.com/sobolevn sobolevn.me 65