Opened 6 weeks ago
Last modified 3 weeks ago
#35888 assigned Bug
Color contrast issues for admin icons
Reported by: | Thibaud Colas | Owned by: | Sarah Sanger |
---|---|---|---|
Component: | contrib.admin | Version: | 5.0 |
Severity: | Normal | Keywords: | accessibility, contrast, icons, wcag, svg |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | yes |
Description (last modified by )
There are a lot of icons in the Django admin that don’t have enough contrast against their background. This is particularly the case for icons used as part of the messages functionality of Django, though this is present in a lot of other icons across the admin.
Here are examples:
- "Success" check icon,
#70bf2b
on#dfd
, contrast of 2.11:1 - "Warning" icon,
#efb80b
on#ffc
, contrast of 1.77:1
Here’s a representation of all theoretical contrast issues (large image):
Link to the demo page I used to test this: django-admin-tests styleguide.
For icons, per WCAG SC 1.4.11 Non-text Contrast, the minimum required "icon to background" contrast is 3:1. However I’d argue it would be better for end users and simpler for contributors to manage if Django used the same 4.5:1 minimum as SC 1.4.3 Contrast (Minimum) (meant for text). While 3:1 could be enough in some cases, Django has quite a lot of UI components that are identified by icons only, and those icons tend to be small.
---
To fix this, I would recommend to start a transition away from icons as external files. With more modern approaches to icons definitions, it’ll be possible to better style the icon graphics according to the UI component state and admin theming.
For the problem at hand – it’ll be sufficient to do a first step of converting all icons defined in CSS with the background
or background-image
properties, to the mask-image property. This makes it possible to define the icon’s color in CSS, so we can then apply theme-specific colors for the icons.
Note for some of the icons – this will require moving away from sprite techniques.
Attachments (1)
Change History (6)
by , 6 weeks ago
Attachment: | Django icons color contrast issues.png added |
---|
comment:1 by , 6 weeks ago
Description: | modified (diff) |
---|
comment:2 by , 6 weeks ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:3 by , 6 weeks ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:4 by , 3 weeks ago
Has patch: | set |
---|
comment:5 by , 3 weeks ago
Patch needs improvement: | set |
---|
Thank you Thibaud!