TGViewer
Всё про доступность интерфейсов Всё про доступность интерфейсов @accessibilityofinterfaces · 7 subscribers
Post #239 4
Хороший маленький кейс из macOS-приложения Notify GCal Menu.

В приложении делали меню в строке macOS: кнопки с иконками, выпадающий выбор времени напоминания, подсказки горячих клавиш вроде ⌘S и ⌘Q.

Визуально всё аккуратно. Но для VoiceOver такая полировка легко превращается в шум или пустоту.

Что нашли в PR:

• Picker «Notify me» визуально имел подпись, но из-за .labelsHidden() сам контрол оставался без понятного контекста для VoiceOver. Исправили отдельным accessibilityLabel("Notify me").

• Заголовок «NOTIFICATIONS» сделали настоящим ориентиром для VoiceOver через .accessibilityAddTraits(.isHeader).

• Текстовые подсказки «⌘S» и «⌘Q» спрятали от экранного диктора: сами шорткаты уже подключены через .keyboardShortcut, а чтение символов вслух только мешает.

Отдельно проверили контраст скриптом. Там нашлась важная деталь: часть системных цветов Apple не проходит 4.5:1 для обычного текста в некоторых состояниях. Команда оставила их как есть, потому что это нативные semantic colors macOS, и переопределение могло бы сделать приложение менее похожим на остальную систему.

Но две проверки остались ручными: живой проход VoiceOver по popover и проверка крупного системного текста / Dynamic Type без обрезки и наложений.

Вывод простой: доступность нативного интерфейса не заканчивается на «у нас стандартные контролы». Нужно пройти реальный путь:

• что слышит VoiceOver у каждого контрола;

• не читаются ли декоративные символы как полезная информация;

• остаётся ли интерфейс usable при крупном тексте;

• не заменяет ли скрипт контраста живую проверку с ассистивной технологией.

Особенно это касается маленьких popover-меню: там мало места, и одна безымянная кнопка или обрезанный текст быстро ломают весь сценарий.
GitHub Accessibility pass on menu bar popover (VoiceOver, Dynamic Type) · Issue #16 · mshirlaw/notify-gcal-menu Ties directly to #6 (adding SF Symbols to action buttons): icon-only buttons need accessibility labels, or VoiceOver users have no way to know what they do. This should be a dedicated accessibility...
More from @accessibilityofinterfaces
  1. Sep 1, 2026Форма, которую заполняют в 3 ночи В issue PaedsMom описали проверку формы консультации: ей…
  2. Aug 31, 2026Видео без дорожки субтитров — это не «потом допишем текст». Свежий сигнал из GitHub: в про…
  3. Aug 31, 2026Видео без дорожки субтитров — это не «потом допишем текст». В SCORM-проекте edumints-scorm…
  4. Aug 30, 2026Свежий баг в Highcharts: график закрыли, а accessibility-таймеры продолжают работать. В is…
  5. Aug 30, 2026Highcharts: график закрыли, а accessibility-таймеры ещё говорят. Свежий баг про отложенные…
  6. Aug 29, 2026Reduced motion как настройка продукта В ProgressRPG завели issue про отдельный переключате…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →