Заява про доступність
Оновлено 15 жовтня 2026
Цю сторінку перекладено за допомогою ШІ, і носій мови її ще не перевіряв. A machine translated this page, and no native speaker has checked it yet.
Kodukeel створено для тих, хто вчить естонську, а багато хто вчить її тому, що мусить. На цій сторінці сказано, до якого стандарту ми прагнемо, що і як перевірили, де поки не дотягуємо і як нам про це повідомити.
Стандарт
Мета: WCAG 2.2, рівень AA, а через нього EN 301 549, гармонізований європейський стандарт, за яким оцінюють державні органи та їхніх постачальників і який включає WCAG у частині вебвмісту.
Статус відповідності
Частково відповідає WCAG 2.2, рівень AA. «Частково» означає, що більша частина застосунку відповідає стандарту, а частини, названі нижче, ні.
Повної відповідності немає, бо нікому з тих, хто покладається на допоміжні технології, ще не платили за перевірку застосунку. Усе, що нижче, спирається на автоматичні перевірки і на те, що автори застосунку перевіряли власну роботу.
Як це перевірялося
За кожної зміни під час збирання запускаються чотири набори тестів, проти справжнього застосунку в справжньому браузері, а не проти окремого компонента.
- axe на кожній сторінці. a11y-check.mjs відкриває кожну сторінку застосунку, а не вибірку, і запускає на кожній axe, зокрема правила найкращих практик. Поки винятків два, перевірена робота й відсканована сторінка, бо для кожної спершу треба створити запис; набір перевірки меж нижче створює обидві й вимірює їх, а axe до них поки не доходить. Увесь прохід повторюється в темній темі, бо світла й темна теми є двома палітрами, і колір, що проходить поріг в одній, нічого не каже про іншу. Ще двічі він запускається за ширини 390 пікселів, тобто на телефоні, бо телефон тут отримує іншу розмітку, а не ту саму, тільки вужчу: бічна панель навігації не малюється зовсім, а замість неї з'являється нижня панель зі шторкою. Цю шторку теж відкривають і перевіряють, бо жодна адреса до неї не веде. Рядок тексту з одного символу теж вважається текстом, і так було знайдено галочку з контрастом 2,52 там, де поріг 4,5. Крім axe перевіряється рівно один головний орієнтир і один заголовок на екран, заголовок сторінки, відмінний від заголовка лендингу, і розмітка естонського тексту, щоб екранний диктор не читав його з англійською вимовою.
- Контраст вимірюється, а не виводиться міркуванням. test-design.mjs читає кольори, які браузер справді намалював, і обчислює співвідношення в обох темах, зокрема стани, у яких сторінка не відкривається сама, наприклад рядок під курсором.
- Кожен елемент перевіряється на 44px. test-mobile.mjs ганяє застосунок за ширини 360, 390, 430, 768 і 1280 пікселів із сенсорним введенням, єдиною умовою, за якої це правило має сенс, і падає на будь-якому елементі керування, меншому за поріг.
- Перекомпонування на 320 пікселях. test-mobile.mjs відкриває кожну сторінку шириною 320 пікселів CSS, а це і є збільшення 400% у вікні шириною 1280, і падає на всьому, що намальовано за краєм екрана поза власною областю прокручування, як у таблиці форм.
- Текст лишається у своїй рамці. test-containment.mjs проходить кожну сторінку за ширини 360, 768 і 1280 в обох темах і перевіряє, чи не обрізано щось, чи не виходить за свою рамку і чи не накладено поверх іншого. Потім перевіряє знову, замінивши кожен рядок тексту нерозривним рядком тієї самої довжини, адже в естонській довгі слова.
Крім того, застосунок зібрано зі справжніх кнопок і посилань із видимою рамкою фокуса. Анімація вимикається для всіх, чия система просить зменшити рух, і ніде не потрібне перетягування. Колір ніколи не є єдиним, що передає відмінність, тож правильна відповідь позначається і словами, і кольором.
Тренувальний раунд на час можна зробити довшим (WCAG 2.2.1, регульований час). «Завдання дня» за замовчуванням триває дві хвилини, а одне налаштування розтягує його аж до десятикратної тривалості, саме ту величину, якої вимагає критерій. Його вибирають до початку раунду в налаштуваннях, і стартовий екран на нього посилається.
Аудит за участю людини з інвалідністю, яка користується допоміжними технологіями, не замовляли. Нікому з користувачів екранного диктора не платили за перевірку, і стороннього аудиту доступності не було. Автоматичні інструменти знаходять, мабуть, третину того, що не так зі сторінкою, і це механічна третина.
Що свідомо не відповідає
Це знайдено читанням коду, а не взято із шаблону, і кожен пункт стосується справжнього екрана.
- Частини пробного іспиту йдуть за таймером, який ніхто не може змінити (WCAG 2.2.1, регульований час), і коли він спливає, частина закривається. Робота імітує державний іспит на час, а тренування такої роботи без обмеження вимірює вже інше, тому це єдиний таймер, залишений незмінним, але кандидат, якому на справжньому іспиті потрібен додатковий час, не може попросити про нього тут.
- Раунди аудіювання, диктанту й мінімальних пар потребують слуху (WCAG 1.2.1). Розшифровки до відповіді немає, бо розшифровка і є відповіддю, тож текстова альтернатива знищила б саму вправу. Текст показується одразу після відповіді. Той, хто не може користуватися звуком, може користуватися всіма іншими раундами, і для прогресу жоден із цих трьох не обов'язковий, але три раунди для нього закриті.
- Мовлення чує машина просто на пристрої: вона повідомляє, які слова дійшли, і ніколи не оцінює, як вони прозвучали. Це новинка, і на голосах самих учнів її ще не вимірювали. Кожен крок раунду усного мовлення можна виконати, друкуючи, тож учень без мікрофона або той, хто не хоче ним користуватися, усе одно має спосіб його пройти.
- axe проходить дві ширини, а не всі. Він запускається за 1280 і 390, по обидва боки від єдиної точки перелому, де змінюється навігація, тож нижню панель телефона й шторку за нею тепер перевірено. Проміжні ширини, 360, 430 і 768, перевіряються на розмір елементів, переповнення й межі, але не axe. Помилку в розмітці, яка проявляється на одній із них і на жодній із двох перших, знайде людина, а не збирання.
- Екрани, яким потрібні дані, перевірено гірше. Автоматичний прохід бачить кожну сторінку під час завантаження плюс один стан, до якого учень доходить своїми діями. Список групи з учнями, частина іспиту в процесі й сітки головоломок під час гри доступні, але перевірені гірше за сусідні сторінки.
- Сполучення з однієї клавіші не можна вимкнути (WCAG 2.1.4, Character Key Shortcuts). У раунді цифра оцінює картку, а B повертає назад. З клавіатури це зручно, але голосове введення може натиснути їх, промовивши одну літеру. Налаштування, щоб їх вимкнути, поки немає.
- Деякі декоративні літери весь час рухаються (WCAG 2.2.2, Pause, Stop, Hide). Чотири літери на картці з відмінками на головній сторінці рухаються, поки сторінка відкрита. Вони зупиняються, якщо система просить менше руху, а на самій сторінці такого перемикача немає.
- Слово звучить саме, коли з'являється картка (WCAG 1.4.2, Audio Control). Це вимикається в налаштуваннях, і запис триває одне слово або одне речення, але ніщо не перевіряє, що кожен запис коротший за три секунди.
Якщо обмеження вище спричинили ми, а не вимога самої вправи, воно в списку на виправлення. Таймери тренувань були першими й тепер налаштовуються, а перевірка на телефоні була другою: раніше вона стояла в цьому списку, а тепер виконується під час збирання. Таймер іспиту лишається, з причини, вказаної поруч із ним.
Критерій за критерієм
Кожен критерій WCAG 2.2 рівнів A і AA і те, як із ним справи в застосунку. EN 301 549 приймає їх як свій розділ 9, по одному пункту на критерій. Критерій позначено як підтримуваний, лише якщо його перевіряє тест у збірці, і цей тест названо. Скрізь інде рядок пояснює, чому ні.
| Критерій | EN 301 549 | Як справи | Чим перевірено або чому ні |
|---|---|---|---|
| 1.1.1 Non-text Content (A) | 9.1.1.1 | Підтримується | scripts/a11y-check.mjs |
| 1.2.1 Audio-only and Video-only (Prerecorded) (A) | 9.1.2.1 | Підтримується частково | Для раундів аудіювання, диктанту й мінімальних пар потрібен слух, як пояснено вище. |
| 1.2.2 Captions (Prerecorded) (A) | 9.1.2.2 | Не застосовується | У застосунку немає відео. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) (A) | 9.1.2.3 | Не застосовується | У застосунку немає відео. |
| 1.2.4 Captions (Live) (AA) | 9.1.2.4 | Не застосовується | У застосунку немає відео. |
| 1.2.5 Audio Description (Prerecorded) (AA) | 9.1.2.5 | Не застосовується | У застосунку немає відео. |
| 1.3.1 Info and Relationships (A) | 9.1.3.1 | Підтримується | scripts/a11y-check.mjs |
| 1.3.2 Meaningful Sequence (A) | 9.1.3.2 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.3.3 Sensory Characteristics (A) | 9.1.3.3 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.3.4 Orientation (AA) | 9.1.3.4 | Підтримується | scripts/invariants/no-orientation-lock.ts |
| 1.3.5 Identify Input Purpose (AA) | 9.1.3.5 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.1 Use of Color (A) | 9.1.4.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.2 Audio Control (A) | 9.1.4.2 | Підтримується частково | Слово звучить саме, коли з'являється картка. Це вимикається в налаштуваннях, і ніщо не перевіряє довжину запису. |
| 1.4.3 Contrast (Minimum) (AA) | 9.1.4.3 | Підтримується | scripts/test-design.mjs |
| 1.4.4 Resize Text (AA) | 9.1.4.4 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.5 Images of Text (AA) | 9.1.4.5 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.10 Reflow (AA) | 9.1.4.10 | Підтримується | scripts/test-mobile.mjs |
| 1.4.11 Non-text Contrast (AA) | 9.1.4.11 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.12 Text Spacing (AA) | 9.1.4.12 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 1.4.13 Content on Hover or Focus (AA) | 9.1.4.13 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.1.1 Keyboard (A) | 9.2.1.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.1.2 No Keyboard Trap (A) | 9.2.1.2 | Підтримується | scripts/invariants/dialogs-hold-focus.ts |
| 2.1.4 Character Key Shortcuts (A) | 9.2.1.4 | Підтримується частково | Деякі раунди реагують на одну клавішу, наприклад цифру для оцінки чи B, щоб повернутися назад, і їх поки не можна вимкнути. |
| 2.2.1 Timing Adjustable (A) | 9.2.2.1 | Підтримується частково | У пробному іспиті час фіксований, як пояснено вище. Час будь-якого тренувального раунду можна збільшити. |
| 2.2.2 Pause, Stop, Hide (A) | 9.2.2.2 | Підтримується частково | Деякі декоративні літери рухаються і зупиняються, лише якщо система просить менше руху. |
| 2.3.1 Three Flashes or Below Threshold (A) | 9.2.3.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.4.1 Bypass Blocks (A) | 9.2.4.1 | Підтримується | scripts/a11y-check.mjs |
| 2.4.2 Page Titled (A) | 9.2.4.2 | Підтримується | scripts/a11y-check.mjs |
| 2.4.3 Focus Order (A) | 9.2.4.3 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.4.4 Link Purpose (In Context) (A) | 9.2.4.4 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.4.5 Multiple Ways (AA) | 9.2.4.5 | Підтримується | lib/ux/nav.test.ts |
| 2.4.6 Headings and Labels (AA) | 9.2.4.6 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.4.7 Focus Visible (AA) | 9.2.4.7 | Підтримується частково | Видиму рамку фокуса перевіряють лише в текстових полях. |
| 2.4.11 Focus Not Obscured (Minimum) (AA) | Поки не пункт стандарту | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.5.1 Pointer Gestures (A) | 9.2.5.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.5.2 Pointer Cancellation (A) | 9.2.5.2 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.5.3 Label in Name (A) | 9.2.5.3 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.5.4 Motion Actuation (A) | 9.2.5.4 | Не застосовується | Нічим не потрібно керувати, рухаючи чи струшуючи пристрій. |
| 2.5.7 Dragging Movements (AA) | Поки не пункт стандарту | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 2.5.8 Target Size (Minimum) (AA) | Поки не пункт стандарту | Підтримується | scripts/test-mobile.mjs |
| 3.1.1 Language of Page (A) | 9.3.1.1 | Підтримується | scripts/a11y-check.mjs |
| 3.1.2 Language of Parts (AA) | 9.3.1.2 | Підтримується | scripts/a11y-check.mjs |
| 3.2.1 On Focus (A) | 9.3.2.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.2.2 On Input (A) | 9.3.2.2 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.2.3 Consistent Navigation (AA) | 9.3.2.3 | Підтримується | lib/ux/nav.test.ts |
| 3.2.4 Consistent Identification (AA) | 9.3.2.4 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.2.6 Consistent Help (A) | Поки не пункт стандарту | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.1 Error Identification (A) | 9.3.3.1 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.2 Labels or Instructions (A) | 9.3.3.2 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.3 Error Suggestion (AA) | 9.3.3.3 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.4 Error Prevention (Legal, Financial, Data) (AA) | 9.3.3.4 | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.7 Redundant Entry (A) | Поки не пункт стандарту | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 3.3.8 Accessible Authentication (Minimum) (AA) | Поки не пункт стандарту | Підтримується частково | У збірці це поки ніщо не перевіряє, тому ми цього не стверджуємо. |
| 4.1.2 Name, Role, Value (A) | 9.4.1.2 | Підтримується | scripts/a11y-check.mjs |
| 4.1.3 Status Messages (AA) | 9.4.1.3 | Підтримується | scripts/invariants/verdicts-are-announced.ts |
Шість із цих критеріїв з'явилися у WCAG 2.2 і поки не стали пунктами EN 301 549 версії 3.2.1, яка приймає WCAG 2.1. Розділ 11 стандарту стосується програм, які не є вебсторінкою, тому до застосунку в браузері він не застосовується.
Коли це підготовлено
Підготовлено 5 вересня 2026 року авторами застосунку на основі описаних вище автоматичних тестів і читання вихідного коду, а таблицю критеріїв додано 15 жовтня 2026 року. Заяву переглядають щоразу, коли екран змінюється настільки, що це зачіпає одне з тверджень. Зовнішньої перевірки не було.
Як повідомити нам про проблему
Напишіть на privacy@upthink.ee. Якщо можете, розкажіть, що ви намагалися зробити, що сталося і чим ви для цього користувалися. Навіть повідомлення «цей екран не працює з моїм екранним диктором» варто надіслати: той, хто його прочитає, зможе піти й подивитися.
Крім того, на кожному екрані застосунку поруч із тим, що пішло не так, є спосіб повідомити про проблему, і ці повідомлення потрапляють до тих самих людей.
Якщо це нічого не дало
Нагляд за доступністю в Естонії здійснює державний орган, відповідальний за Директиву про вебдоступність, а скарга на обробку персональних даних надсилається до Інспекції із захисту даних Естонії (Andmekaitse Inspektsioon), Tatari 39, 10134 Tallinn, Estonia, info@aki.ee. Але спершу все ж напишіть нам. Лист читає жива людина, і виправити зазвичай швидше, ніж поскаржитися.
Див. також «Довіра й безпека» і «Конфіденційність».
Конфіденційність, Умови, Фінансування, Довіра, Для викладачів, Пілотний проєкт (англійською), Доступність, Державний іспит, Допомога, Увійти, Контакти