Opened 3 hours ago

Last modified 3 hours ago

#35888 new Bug

Color contrast issues for admin icons

Reported by: Thibaud Colas Owned by:
Component: contrib.admin Version: 5.0
Severity: Normal Keywords: accessibility, contrast, icons, wcag, svg
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: yes

Description (last modified by Thibaud Colas)

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):

https://code.djangoproject.com/raw-attachment/ticket/35888/Django%20icons%20color%20contrast%20issues.png

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)

Django icons color contrast issues.png (107.6 KB ) - added by Thibaud Colas 3 hours ago.

Download all attachments as: .zip

Change History (2)

by Thibaud Colas, 3 hours ago

comment:1 by Thibaud Colas, 3 hours ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top