Индукционная доступность

Антон Есауленко, Сбербанк-Технологии

Индукционная доступность

Логотип компании Сбербанк-Технологии

Мотивация

С большой силой приходит большая ответственность.

Бенджамин «Бен» Паркер
Логотип Человека-Паука в мультяшной интерпретации

Индукция

Философский и вообще научный метод движения знания от отдельного, особенного к всеобщему, закономерному

Философский энциклопедический словарь. 2010

Экспозиция

Особое положение

Браузер со схематичным представлением Сбербанк Онлайн

axe-core

Логотип библиотеки axe-core
Серебрянный топор доступности
QR код с ссылкой ведущей на проект axe-core

Отчет aXe

Фолбэк

Сложности

				axe <url>
			

Скриншот результата работы axe-cli с большим количеством ошибок
QR код на страницу с инструментами для проверки доступности
Инструменты для улучшения доступности

=

Стратегия нанесения добра

Запутанный путь с маркерами
  1. Инструменты разработчика
  2. Юнит-тестирование
  3. Автотестирование
  4. Соглашения

eslint-plugin-jsx-a11y

QR код - ссылка на плагин
			{
				"plugins": ["jsx-a11y"]
				"rules": {
					"jsx-a11y/mouse-events-have-key-events": "error",
					"jsx-a11y/alt-text": ["warn', {
						"elements": ["img"],
						"img": ["Icon"]
					}]
				}
			}
		
			<modal>
				<Icon name="close-cross" 
					alt="Закрыть модальное окно" />
				<main>
					Контент
				</main>
			</modal>
		

react-axe

QR код с ссылкой на проект react-axe

Юнит-тестирование

Портрет Рика Санчеза из мультфильма Rick and Morty

Учёные долго скрывали это. Для того чтобы писать юнит-тесты для проверки доступности необходимо всего лишь...

Узнать больше

			it ('a11y check', async function() {
				const wrapper = (<Super Component />)
				const result = await a11yCheck (wrapper)
				expect(result.violations.length)
											.toBe(0)
			}
		

Мои велосипеды

			import axe from 'axe-core'
			function a11yCheck (ReactComponent) {
				const wrapper = mount (ReactCompontn)
				result axe.run (wrapper.getDOMNode())
			  		.then(resolve, reject)
			}
		

Автотестирование

— Каково моё предназначение?

— Тестировать бизнес процессы

Соглашения

Зачем?

Nils Frahm is a German musician, composer and record producer based in Berlin. He is known for combining classical and electronic music and for an unconventional approach to the piano in which he mixes a grand piano, upright piano, Roland Juno-60, Rhodes piano, drum machine, and Moog Taurus.

a11y propTypes

			type Props = {
				a11y: {
					prefix: string
				}
			}
		
Запутанный путь с маркерами
  1. eslint-plugin, react-axe Инструменты разработчика
  2. axe-core Юнит-тестирование
  3. Тест кейсы с клавиатуры Автотестирование
  4. a11y props Соглашения

Библиотека компонентов

Чем проще - тем лучше

Скриншот поля выбора даты aria-hidden="true"

Ссылки

Поиск баланса

Персонаж Абрадольф Линклер

Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего убрать.

Антуан де Сент-Экзюпери

Подводя итог

Индукционная доступность

Антон Есауленко

Профиль детектива Шерлока Холмса