Перейти к содержанию

Доступность

DiskScope использует нативные SwiftUI-таблицы и контролы, поэтому VoiceOver получает заголовки колонок, значения и действия без отдельного режима.

VoiceOver

  • Таблицы «Содержимое», «Крупнейшие» и «Типы» читают имя, размер, долю, количество элементов и тип.
  • Вкладки, кнопки заголовка и строки сайдбара имеют accessibilityLabel; выбранная вкладка/строка помечается трейтом isSelected.
  • Иконки действий (Finder, коллекция, Корзина) озвучивают своё назначение.
  • Карта папки представлена VoiceOver списком верхнеуровневых ячеек: имя, размер и кнопка открытия. Это представление не зависит от Canvas.
  • Прогресс-бары и полоса типов имеют текстовое значение в процентах/по типам.
  • Карточки диска объединяют заголовок, значение и пояснение в один элемент.

Клавиатура

Где Клавиши Действие
Карта Tab, затем ←↑↓→ Фокус на карту и выбор соседней ячейки
Карта Return Открыть папку или выбрать файл
Карта Space QuickLook для выбранного файла
Карта Esc Снять выбор
Таблицы ↑↓, Space Перемещение и QuickLook
Везде ⌘F, ⌘6, ⌘7, ⌘8, ⌘9, ⌘0 Поиск, коллекция, диск, история, дубликаты, похожие

Клик по карте ставит фокус на Canvas; после этого стрелки работают без мыши. Клавиатурное выделение рисуется акцентной рамкой, подсказка появляется в углу карты.

Проверка

swift test --filter TreemapNavigationTests

Ручная проверка: System Settings → Accessibility → VoiceOver, включить VoiceOver и пройти по вкладкам, таблицам и карте. Для проверки контраста и размеров — Accessibility Inspector.

Ограничения

  • Canvas не отдаёт VoiceOver каждую вложенную ячейку; для навигации доступны верхнеуровневые элементы, а детали — через таблицу.
  • Цвет не является единственным носителем смысла: категории подписаны.
  • Полная поддержка Dynamic Type ограничена фиксированными размерами шрифтов дизайна; это запланировано отдельно.