Skip to content

The ChromePicker (Custom color picker) is not accessible #7246

@afercia

Description

@afercia

The ChromePicker provided by react-color has accessibility issues that make it almost unusable for keyboard users and screen reader users.

A few months ago, this was quickly discussed on Slack. At that time, the chrome picker wasn't considered "stable" so it wasn't the right time to pay attention to it.

Re: react-color see also #2383:

The library doesn't force us to use their existing pickers. (It'd be good for us to report issues back to them so they can fix, in any case.) And I've stated that we are likely to build our own using their primitives since we want to have a "clear-color" option, a way to choose whatever color—not just those provided by the palette or the theme—, and obviously accessibility features.

/Cc @mtias

By the way, I see there's now a pending PR to add an alpha transparency UI control to the chrome picker, so I have the impression the current plan is to keep this component?

If so, I'd strongly recommend to reconsider the plan as ChromePicker doesn't meet the accessibility and quality standards Gutenberg aims to implement.

Main issues identified so far:

  • the only focusable UI controls are the color code fields
  • these fields are completely unlabelled, they're announced just as "edit text"
  • all the other UI controls (the hue slider, the arrows to change color format) are just clickable DIVs
  • it's impossible to use the color "handle" with a keyboard

On the other hand, I'd like to remind the WordPress color picker based on Iris is way better with regards to accessibility and it would need just some minor improvements.

Screenshots with Safari and VoiceOver:

screen shot 2018-06-09 at 14 39 47
screen shot 2018-06-09 at 14 40 44

Metadata

Metadata

Assignees

No one assigned

    Labels

    [Focus] Accessibility (a11y)Changes that impact accessibility and need corresponding review (e.g. markup changes).[Priority] HighUsed to indicate top priority items that need quick attention

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions