fix(stijl): de gebundelde profielen halen hun eigen contrastondergrens (#1818) #1820
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1820
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/checklist-contrast-default"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Het standaardthema zakte door de contrasteis die de app zelf hanteert, zodra je een van zijn eigen diatypes gebruikte.
Wat er misging
checklistUncheckedColor: '#CBD5E1'op een witte dia is een verhouding van 1,48, tegen de 3,0 dieSlideQualityAnalyzer._checkChecklistContrasteist (WCAG 1.4.11). Elk deck met een checklist-dia opende dus meteen op een waarschuwing die de auteur vanuit de.mdniet kón oplossen — styling staat bewust niet in het bestand (FILE_FORMAT §3.2).Gemeten op
main, alle gebundelde profielen door de analyzer met een deck van titel/sectie/checklist/tabel/code:De kleur is nagerekend, niet gekozen
#94A3B8— de voor de hand liggende volgende stap in de slate-ramp — haalt 2,56 en zou het dus niet hebben opgelost. De lichtste tint die 3,0 raakt ligt rond#8695AA(3,05): te weinig marge.#64748Bhaalt 4,76 op wit. Belangrijker: het is de klasse kleur die op beide uitersten werkt — 3,90 / 3,75 / 3,07 op de donkere tinten die deze repo elders voert, waar het oude lichte grijs juist op wit faalde. Een midden-grijs is de enige keuze die 3:1 haalt ongeacht hoe de auteur zijn achtergrond zet.Vier kopieën van dezelfde standaard moesten mee: de constructor,
security,vigilisen — bijna vergeten — de terugval inThemeProfile.fromJson. Was die laatste blijven staan, dan had een profiel dat zónder deze sleutel uit de instellingen komt de oude kleur teruggekregen, bij precies de gebruiker die er niets aan veranderd had. Er staat nu een test op dat die twee gelijk zijn.Het bleek breder dan gemeld
Vigilis droeg er nog drie bij. Twee daarvan zijn dezelfde fout: de sectiedia tekent
titleTextColor(wit) op het merkgeel#FFB800— 1,73, onleesbaar, bevestigd in de renderer (text_previews.dart,_titleColor), niet alleen in de analyzer.Die achtergrond is nu het merkzwart
#111318(wit erop: 18,6). Het geel kón daar niet blijven zolang de sectie zijn tekstkleur deelt met de titeldia, en die moet wit blijven voor de bijna-zwarte titelachtergrond. Het merkaccent zelf is ongemoeid:accentColoris nog steeds#FFB800.De botsing, hardop
Toegankelijkheid tegen merkidentiteit. Bij de sectie laat ik toegankelijkheid voorgaan: wit op geel is geen merkbesluit maar onleesbaar, en er was een reparatie die het geel als accent intact laat.
Bij de vierde bevinding niet. Datzelfde geel wordt óók als
linkColordoorgegeven (bullets_previews.dart,table_preview.dart), en haalt op wit 1,73 waar 4,5 nodig is. Om dat te repareren moet het accent naar ongeveer#96690F, en dan verandert het zichtbare merk overal. Dat is een besluit van de merkeigenaar, niet van een reparatiebeurt — expliciet zo besloten. Het blijft dus staan, maar zichtbaar: als benoemde uitzondering in de test, met #1819 erbij. Van gedachten veranderen we zodra dat issue een kant op valt; de uitzondering gaat er dan uit, en de test dwingt dat af (zie hieronder).Dat een Vigilis-deck vandaag onleesbare links heeft, is een echte toegankelijkheidsschuld. Hij is nu opgeschreven in plaats van onopgemerkt.
De poort die er niet was
Dat is het eigenlijke gat: niets hield de standaardwaarden aan hun eigen ondergrens.
test/theme_profile_contrast_test.darthaalt nu elk gebundeld profiel door dezelfdeSlideQualityAnalyzerals het kwaliteitspaneel, over een deck dat elk contrastpaar aanraakt dat de analyzer kent, en eist nul bevindingen.Uitzonderingen staan in één expliciete map mét reden en issuenummer. En een tweede test faalt zodra een uitzondering niet meer nodig is — anders blijft hij staan nadat de kleur gerepareerd is en dekt hij stilletjes de volgende fout op datzelfde veld.
De test stond eerst rood: 4 van 7 faalden tegen de onherstelde waarden.
Bewust buiten scope
Het aangevinkte
#2E7D64haalt op#1E293B2,95 — nét onder 3,0. Dat is een bestaand geval op een achtergrond die geen enkel gebundeld profiel voert, en repareren zou de standaard-accentkleur veranderen. Staat opgeschreven in de test, niet stilzwijgend meegenomen.Gedraaid
make check— groen, exitcode 0 (niet doortailgepijpt)make check-secrets— 0 bevindingenmake sast— 0 bevindingen.md— styling staat daar bewust niet in — dus uitwisselbaarheid is niet in het geding. Wat wél geraakt wordt is een publieke belofte (waarde 4, en waarde 7): de app meet contrast bij de gebruiker, dus moeten zijn eigen profielen die lat halen. ACCESSIBILITY.md zei daar niets over en zegt het nu wel.Closes #1818