ADR-017 — Accessibilité citoyen de première classe, fondée sur le modèle d’objet C-ABI
Statut : Accepté — document fondateur. Édition directe autorisée en phase de design pré-ouverture publique ; immuable après ouverture publique (toute évolution via RFC, ADR-015). Catégorie : Architecture (accessibilité, toutes couches).
Contexte
L’accessibilité traitée comme une option repose sur la bonne volonté de chaque auteur d’application : elle est donc, en pratique, absente de la plupart d’entre elles.
La rendre structurelle suppose que l’information nécessaire — rôle, libellé, valeur, état, hiérarchie — soit portée par le modèle d’objet lui-même, et non redéclarée par le développeur.
Décision
L’accessibilité est un fondement d’Air. Toute UI Air est accessible par construction grâce au modèle d’objet C-ABI (ADR-002) qui porte les propriétés accessibility universelles (label, role, value, state, hierarchy, traits) pour toute AirObject. Les développeurs d’apps Air n’ont pas à coder spécifiquement l’accessibilité : le framework la génère depuis la structure déclarative de l’app.
Technologies d’assistance comme services AirCom. Capability air.accessibility.observer (sensible, confirmation utilisateur au premier usage). Pont bidirectionnel AT-SPI ↔ AirCom en couche 2 pour compatibilité avec écosystème existant (Orca notamment) pendant la phase d’incubation.
Catégories couvertes :
- Malvoyance/cécité : lecteur d’écran natif
air-screenreader(planifié post-phase 4, alternative initiale Orca via pont AT-SPI), agrandisseur intégréair-wm, thèmes contraste, taille de texte ajustable, filtres daltonisme. - Handicap moteur : navigation clavier intégrale obligatoire, sticky/slow/bounce keys via evdev, commande vocale
air-voice-control(tier-2, basée Whisper.cpp ou équivalent local), switch control (tier-3). - Handicap auditif : signaux visuels pour alertes audio, sous-titres système (tier-2).
- Handicap cognitif : mode interface simplifiée, polices dyslexie-friendly, réduction du mouvement.
Moteur TTS : piper (qualité moderne, open source) en priorité, espeak-ng en fallback.
Conséquences
Engagement public WCAG 2.2 AA pour toutes les UIs Air. Tests automatisés CI, tests manuels avec AT lors des releases, audit externe avant Air OS 1.0 grand public, documentation publique de l’état d’accessibilité.
Alternatives rejetées
Aucune alternative n’a été consignée lors de l’instruction.
Licence du document : MPL 2.0