Quinze boutons dont l'état ne se disait qu'en couleur
J'en annonçais trois. Le balayage de la forme — un « className » qui dépend d'un état — en a trouvé vingt, dont quinze sont de vrais défauts. Sixième fois dans cette session qu'une énumération à la main se révèle courte. À l'œil, l'accent se voit. Pour un lecteur d'écran, rien ne distinguait la gravité retenue des trois autres, la portée choisie d'un envoi, le registre d'une observation, le périmètre du cockpit, ni les bascules du tableau des actions. Quinze « aria-pressed ». ── Le tri a demandé plus de soin que la correction Un bouton dont le libellé change avec l'état n'a pas de défaut : l'état est déjà dans son nom accessible. « Caméra » et « Caméra coupée » disent tout, et un « aria-pressed » n'y ajouterait qu'une redite. Le balayage mécanique en avait marqué quatre à tort — la caméra, le partage d'écran, l'enregistrement, le « Composer » du cockpit — et je les ai retirés. « PanneauVisio.tsx » est revenu au fichier d'origine, sans trace. Le cinquième était pire qu'une redite : l'engrenage des réglages ouvre un panneau et porte « aria-expanded ». Lui poser « aria-pressed » aurait annoncé une bascule là où il y a un dépliant, et les deux attributs se seraient contredits. Deux autres boutons colorés ne portent aucun état : l'écran d'atterrissage distingue les réponses positives d'un lien de mobilisation, la confirmation motivée colore son bouton selon que le geste est destructeur. La couleur y dit ce que le bouton est, non s'il est enfoncé. Ce sont les deux exceptions nommées de la garantie, avec leur raison — plutôt qu'un motif rétréci en silence, qui aurait aussi cessé de surveiller les vrais. ── Trois jeux qui n'avaient pas de nom Le registre de la clôture — « Ce que vous consignez ». Le filtre par terme de la veille externe. Et le périmètre du cockpit, qui partage sa rangée avec le « Composer » et l'indication de provenance : il est isolé dans son propre groupe plutôt que de nommer la rangée entière, qui aurait alors compté un bouton qui n'en relève pas. ── La garantie, et sa reprise Première version : six lignes de fenêtre après la classe pour y chercher un libellé variable. Elle a manqué le partage d'écran, dont le libellé arrive sept lignes plus bas derrière un « onClick » qui en prend six — et elle acceptait l'enregistrement pour une mauvaise raison, un « title » conditionnel pris pour un libellé. Seconde version : on lit le bouton entier, de « <button » à « </button> », et l'on compte les fois où sa condition d'état paraît. Une seule, c'est la classe et rien d'autre ; deux, le libellé en dépend aussi. Pas de fenêtre à régler, pas de comptage d'accolades. Et elle a trouvé un seizième site que mon balayage initial ne voyait pas : il cherchait « accent », or la confirmation motivée se colore en « danger ». C'est l'une des deux exceptions ci-dessus — mais je ne l'aurais pas su sans elle. Éprouvée dans les deux états : privées de leurs « aria-pressed », les sources lui rendent exactement les quinze sites, et aucun des cinq exemptés. 1182 garanties au vert, trois clés d'anglais pour les noms des groupes. ── Vérifié à l'écran Gravité au déclenchement : « Majeure=true » et le reste à faux ; un clic sur « Vigilance » déplace l'état. Périmètre du cockpit : le groupe existe, ses trois boutons portent leur état, et « Composer » est bien hors du groupe. Registre de la clôture : « Ce qui a tenu=true ». Tableau des actions : « Par cellule » passe à « true » au clic. Mise en page inchangée. Le filtre par terme de la veille externe n'est pas vérifié à l'écran : aucun terme n'est surveillé sur cette instance, le bloc ne se rend donc pas. Sa forme est celle du registre de clôture, qui l'est. Co-Authored-By: Claude (RCA)