Питання на співбесіді з доступності з відповідями
Семантичний HTML, клавіатура й фокус, ролі та стани ARIA, доступні імена, форми й помилки, контраст і анімації, патерни віджетів, скринрідери, WCAG 2.2, тестування та European Accessibility Act.
225 запитань для співбесіди з теми Доступність з відповідями й поясненнями - рівні Junior, Middle і Senior. Приклади запитань, онлайн-тести й задачі на код.
- WCAG
- ARIA
- Клавіатура
- Скринрідери
- Контраст
Запитання за рівнями
Junior
Базові поняття та синтаксис · 50 запитань
Middle
Практика, нюанси й оптимізація · 50 запитань
Senior
Архітектура, внутрішня будова, edge cases · 50 запитань
Приклади запитань
Кілька запитань із кожного рівня з правильною відповіддю й поясненням.
Доступність · Junior
- Що означає вебдоступність (a11y)?
Показати відповідь
Правильна відповідь: Сайтом можуть користуватися люди з будь-якими можливостями й пристроями
Доступність означає, що люди з порушеннями зору, слуху, моторики чи когнітивних функцій можуть сприймати, розуміти й використовувати сайт. «a11y» - скорочення: a, 11 літер, y.
- Кому корисні доступні інтерфейси?
Показати відповідь
Правильна відповідь: Усім, зокрема людям із тимчасовими обмеженнями
Зламана рука, яскраве сонце чи шумний потяг створюють ті самі бар'єри, що й постійна інвалідність. Субтитри, контраст і клавіатура допомагають усім цим людям.
- Що таке WCAG?
Показати відповідь
Правильна відповідь: Настанови W3C щодо доступності вебконтенту
Web Content Accessibility Guidelines задають критерії успіху, які можна перевірити. Версія 2.2 - чинна рекомендація W3C, а закони й контракти часто посилаються на неї або на 2.1.
- Які чотири принципи WCAG?
Показати відповідь
Правильна відповідь: Сприйманість, керованість, зрозумілість, надійність
Їх називають POUR. Користувачі мають могти сприймати контент, керувати інтерфейсом, розуміти його й покладатися на роботу з допоміжними технологіями.
Доступність · Middle
- Що таке дерево доступності?
Показати відповідь
Правильна відповідь: Структура браузера з ролей, імен і станів, побудована з DOM
Допоміжні технології читають це дерево через API платформи, а не DOM напряму. DevTools у Chrome і Firefox дають змогу оглянути його для будь-якого елемента.
- Яке джерело зазвичай перемагає при обчисленні доступного імені?
Показати відповідь
Правильна відповідь:
aria-labelledby, потімaria-label, потім нативні підписи й вмістОбчислення має визначений порядок.
aria-labelledbyпереважає все, тож застаріле посилання може тихо замінити добрий видимий підпис. - Чим відрізняються
aria-labelledbyіaria-describedby?Показати відповідь
Правильна відповідь: Перший задає ім'я; другий додає допоміжний опис
Ім'я каже, що це за елемент, і оголошується завжди. Опис додає подробиці, як-от формат, а користувачі можуть налаштувати, чи його чути.
- Чому краще
aria-labelledbyна видимий текст, ніжaria-label?Показати відповідь
Правильна відповідь: Видимий текст лишається актуальним і перекладається зі сторінкою
aria-labelлегко забути оновити, а браузерні перекладачі можуть його пропустити. Повторне використання видимого тексту дає єдине джерело правди.
Доступність · Senior
- Як інформація потрапляє з DOM до скринрідера?
Показати відповідь
Правильна відповідь: Браузер віддає дерево доступності через API платформи
Браузери відображають ролі й стани на API на кшталт UI Automation у Windows чи AX API у macOS. Тому результати різняться між парами браузера й скринрідера.
- Яка з цих ролей отримує ім'я зі свого вмісту?
Показати відповідь
Правильна відповідь:
button, аtextboxпотребує підпису ззовніРолі на кшталт button і link дозволяють ім'я з вмісту. Textbox - ні, бо його вміст - це значення користувача.
- Чи може
aria-describedbyвказувати на елемент з атрибутомhidden?Показати відповідь
Правильна відповідь: Так, прихований вміст за посиланням усе одно враховується
Обчислення імені й опису враховує приховані вузли, якщо на них є пряме посилання. Це зручно для опису, якого не має бути на екрані.
- Модальне вікно ставить
aria-hidden="true"на#app, але фокус досі всередині#app. Що станеться?Показати відповідь
Правильна відповідь: Фокус у прихованому вмісті; Chrome може навіть заблокувати атрибут
Спершу перенесіть фокус. Chrome попереджає й ігнорує
aria-hidden, коли нащадок має фокус. Кращеinert, що прибирає й фокус.
Збірні тести з цією темою
Запитання з кількох тем одразу - як на співбесіді на конкретну вакансію.
Задачі на код
Напишіть рішення просто в браузері - тести перевірять його одразу. Класика співбесід на JavaScript (debounce, deepClone, Promise.all, LRU-кеш), на TypeScript (дженерики, звуження й утилітні типи, перевіряє справжній компілятор), серверна логіка на Node.js (middleware, обмеження частоти, черги задач), SQL-запити в справжньому PostgreSQL і на React: компоненти й хуки на кшталт списку справ, вкладок, useDebounce та useInterval.
Відкрити задачі →