[Bug] De hint in de afbeeldingkiezer staat op 3,31:1, en twee donkere paletten staan buiten elke contrasttoets #779
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#779
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Wat er mis is
De hint in het zoekveld van de afbeeldingkiezer staat op 3,31 : 1. WCAG AA
vraagt 4,5:1 voor gewone tekst, en dit is 13px.
lib/widgets/dialogs/parts/image_carousel_picker_chrome.dart:114—ImagePickerPalette.textDim(#6E7681) opsurface2(#21262D).Waarom niets dit zag
OciDeck heeft drie donkere paletten, niet één:
AppTheme+ de profielenapp_theme_contrast_test.dart, sinds #606/#744/#750PresenterPaletteImagePickerPaletteDie laatste twee komen in geen enkel testbestand voor. Ze staan bewust
buiten het app-thema — het zijn op zichzelf staande donkere oppervlakken, en om
precies die reden zondert
check_conventionsze uit van deraw-colour-ratchet. Die uitzondering is verdedigbaar; het gevolg was dat ze
tegelijk buiten élke contrastmeting vielen.
En de app bewaakt dit elders juist wél.
test/input_hint_contrast_test.dartbestaat sinds #583 en toetst precies dit — "een tip in een invoerveld moet er
als een tip uitzien" — maar leest
theme.inputDecorationTheme.hintStyle, en dekiezer heeft geen thema; hij schildert zijn hint met de hand. Dezelfde regel,
één laag ernaast, en daardoor niet gedekt.
De meting
PresenterPaletteis in orde:text(#E5E5E5) haalt 9,0:1 tot 15,7:1 op allezeven oppervlakken. Daar is niets te repareren — maar ook niets dat het zo houdt.
ImagePickerPalette, tegensurface2(#21262D):text#CDD9E5textMuted#8B949EtextDim#6E7681accent#58A6FFwarning#F0B429success#22C55EAlleen
textDimis een echte bevinding, en alleen waar het tekst is.Hetzelfde token kleurt ook de sluit-, zoek- en wis-iconen; die zijn grafische
onderdelen (WCAG 1.4.11, lat 3:1) en halen met 3,31 nét de norm. De hint is het
enige gebruik waar de tekstlat geldt en niet gehaald wordt.
De vijf tokens die vs.
surface2nóg lager uitkomen —accentStrong2,27,dangerStrong2,36,successStrong3,29,danger4,11 — heb ik nagekeken opgebruik:
successStrongendangerStrongstaan alsbackgroundColor:(dusvullingen),
accentStrongendangeridem in grid/verwijderpaneel. Die tegende bodytekst-lat leggen is een categoriefout, en precies de fout die de helft
van #606's basislijn vulde. Ze staan hier voor de volledigheid, niet als
schuld. Wat bij een vulling wél telt is het label eróp; dat is niet gemeten.
Voorstel
textDimoptrekken tot ≥ 4,5:1 opsurface2.#8B949E(textMuted)haalt 4,95 — of een eigen waarde daartussen. Nagaan of
textDimdaarmee nogvan
textMutedte onderscheiden blijft; als dat niet lukt, is de vraag ofhet derde tekstniveau bestaansrecht heeft.
app_theme_contrast_test.dartal gebruikt: per token de rol benoemen (tekst→ 4,5:1, grafisch → 3:1) en meten tegen het oppervlak waar het écht op ligt.
Dat is het deel dat dit terug laat komen als iemand een tint bijstelt.
dangerStrong, wit opsuccessStrong. Dat is nu nergens gemeten, en het isdezelfde klasse als het knoplabel dat in #750 op 2,54:1 bleek te staan.
Voor de vorm van zo'n toets is
appearance_contrast.dart(#750) het model: eenpaar draagt zijn eigen lat mee, en het meet het opgeloste resultaat in plaats van
losse constanten.
Kosten
Een dagdeel. Geen l10n, geen afhankelijkheid, geen SBOM-gevolg. Wel een regel in
docs/ACCESSIBILITY.md: dat document somt op wat er getoetst wordt en noemtdeze twee paletten nu niet.
Zie ook het bredere punt: deze twee oppervlakken zijn ook nooit met eigen ogen
in donkere modus nagelopen.
Opgepakt. Tak:
fix/palet-contrast-779. Reikwijdte:ImagePickerPalette.textDimoptrekken tot ≥4,5:1 opsurface2, en een contrasttoets die beide losstaande donkere paletten dekt — per token de rol (tekst 4,5:1 / grafisch 3:1) en het oppervlak waar het écht op ligt, plus de labels op de gekleurde vullingen. Model isappearance_contrast.dartuit #750.