Deux écarts trouvés en appliquant le cahier au produit
La campagne s'est arrêtée à la connexion, faute de session — mais les écrans du tunnel d'entrée, eux, se testent sans compte. Deux écarts sur quatre écrans. ── Un écran de partage sans titre, dans trois de ses quatre états Le lien de partage s'adresse à quelqu'un qui n'a pas de compte : c'est parfois le seul écran de Kastell qu'une personne verra. Trois de ses états — lien incomplet, lien expiré ou révoqué, ouverture en cours — n'avaient aucun titre de page. Un lecteur d'écran y arrivait sans savoir où il était. Et la garantie que j'avais écrite au lot 4 ne l'a pas vu, pour deux raisons qui méritent d'être dites. « Partage.tsx » manquait à sa liste de six écrans. Mais même présent, il aurait passé : le contrôle cherche « <h1 » dans le fichier, et le fichier en portait un — dans l'état de succès. Un titre caché derrière une condition échappe à un contrôle qui lit le source. C'est précisément ce que ce cahier de test existe pour attraper, et il l'a attrapé au premier essai. ── Un bandeau d'avertissement illisible en thème sombre « Instance de test — ne pas utiliser pour de la production » portait « color: #fff » en dur. En thème clair, blanc sur le rouge critique donne 6,55:1. En thème sombre, « --crit » est un saumon clair fait pour porter du texte, non pour en recevoir : 2,71:1, sous le seuil AA. Un avertissement permanent qu'on ne lit pas est un avertissement perdu. La teinte du texte suit désormais le fond de page — 5,52:1 en clair, 7,01:1 en sombre. Et la paire entre dans les quinze que la mesure de contraste contrôle à chaque version : elle n'y était pas, ce qui explique qu'une couleur figée en dur ait pu tenir. ── Ce que la campagne a validé, sans écart Connexion et inscription : titre de page, champs tous étiquetés, quatre sur quatre à l'inscription, aucun débordement à 1440 ni 596 px, cibles à quarante-quatre points, texte à 15,2:1. Clavier seul sur la connexion : sept éléments atteignables, tous avec un contour de focus visible, ordre de tabulation logique. Bilinguisme du tunnel : « lang="en" », aucun texte français résiduel, et les refus du serveur traduits — « Session required. » contre « Session requise. » selon l'en-tête, seuil de validation conservé. Atterrissage sur un jeton inconnu : le refus est dit, sans divulguer si le lien a existé. Co-Authored-By: Claude (RCA)