Skip to content

1.4.11 Non-text contrast understanding doc references placeholder as a passing technique, despite it being a transient state #4413

@smhigley

Description

@smhigley

I have a question on a sentence in the Boundaries section of the Non-text contrast understanding doc:

If text (or an icon) within a button or placeholder text inside a text input is visible and there is no visual indication of the hit area then the success criterion is passed.

The question I have with placeholder text specifically is that, as a function of how it works, it is always possible to remove placeholder text by typing something (e.g. a space character) into the input. My current understanding is that every editable control that relies on placeholder text to be visible can be put into a state where that placeholder text is no longer visible. Is there something that would cause this state to not fail the criterion?:

Screenshot of two text inputs without visible labels. The top has the placeholder text Email within it, and the bottom is empty. Both have a very light grey border.

(e.g. in the above image, where both inputs have the same placeholder markup, and the second input contains a whitespace character)

This is a bit more than an edge case, since it's fairly easy to accidentally press space while on an input, particularly if the controls on the page are hard to perceive, and the user thinks they might be on a button and are trying to activate it. I've observed this exact thing happen more than once in user studies. I've also observed that placeholder text without a contrasting border places enough burden on low vision users that I'm not sure I'd consider it sufficient to identify the control even if it were always visible, but that might be a can of worms that doesn't need opening 😅.

Please let me know if there's something I'm missing here, and if there's something I haven't considered that would allow placeholders to persistently identify inputs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions