From 622d8ae33076122e0da527992f44e59110056ec4 Mon Sep 17 00:00:00 2001 From: Adam Page Date: Thu, 21 Aug 2025 20:03:52 -0700 Subject: [PATCH 1/7] initial commit --- css/base.css | 13 ++++-- .../minimal-button.svg | 11 +++++ .../ntc-focus-background.svg | 16 +++++++ .../ntc-focus-border.svg | 17 +++++++ .../ntc-focus-inner-border.svg | 20 +++++++++ .../ntc-focus-inner-outer.svg | 20 +++++++++ .../ntc-focus-inner-white.svg | 20 +++++++++ .../ntc-focus-inner.svg | 20 +++++++++ .../ntc-focus-outer-green.svg | 17 +++++++ .../ntc-focus-outer-yellow.svg | 20 +++++++++ .../text-input-background-border.svg | 9 ++++ .../text-input-background.svg | 8 ++++ .../text-input-default.svg | 8 ++++ .../text-input-focus.svg | 10 +++++ .../text-input-minimal.svg | 12 +++++ understanding/21/non-text-contrast.html | 44 +++++++++---------- 16 files changed, 239 insertions(+), 26 deletions(-) create mode 100644 understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg create mode 100644 understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg diff --git a/css/base.css b/css/base.css index be7d1dd2e0..089f292a34 100644 --- a/css/base.css +++ b/css/base.css @@ -203,9 +203,9 @@ margin: 1.2em 0; align-items: stretch; } -#site-header.minimal-header .minimal-header-name, -#site-header.minimal-header .minimal-header-subtitle, -#site-header.minimal-header .minimal-header-link +#site-header.minimal-header .minimal-header-name, +#site-header.minimal-header .minimal-header-subtitle, +#site-header.minimal-header .minimal-header-link { display: flex; flex-direction: column; @@ -411,7 +411,7 @@ font-size: 95%; .standalone-resource-about a, .standalone-resource-pager a, .standalone-resource-about span, -.standalone-resource-pager span +.standalone-resource-pager span { margin-left:.8em; margin-right:.8em; @@ -444,6 +444,11 @@ figure svg { border: 1px solid var(--line-grey); } +figure svg[role*="image"] { + display: block; + max-inline-size: 100%; +} + figcaption { font-weight: initial; border-bottom: initial; diff --git a/understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg b/understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg new file mode 100644 index 0000000000..1ba6c50ac7 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg @@ -0,0 +1,11 @@ + + Two buttons, the first with no visual indicator except text saying 'button'. The second is the same but with an added grey border. + + + Button + + + + Button + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg new file mode 100644 index 0000000000..f07b8f20cf --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg @@ -0,0 +1,16 @@ + + Three blue buttons, the center button is a darker blue than the others. + + + + Example + + + + Example + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg new file mode 100644 index 0000000000..3a9cb9cbd5 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg @@ -0,0 +1,17 @@ + + Three blue buttons on a white background, the center button has a green border exactly on the outer boundary of the button. + + + + Example + + + + + Example + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg new file mode 100644 index 0000000000..bb93e737a6 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg @@ -0,0 +1,20 @@ + + Three blue buttons with a black border on a white background, the center button has a green border inside, adjacent to the inner background and black border. + + + + + Example + + + + + Example + + + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg new file mode 100644 index 0000000000..bad9972845 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg @@ -0,0 +1,20 @@ + + Three blue buttons on a white background, the middle has the outline of a yellow rectangle that is partly inside the button’s boundary, and partly outside on the white background. + + + + + Example + + + + + Example + + + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg new file mode 100644 index 0000000000..c57656f5df --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg @@ -0,0 +1,20 @@ + + Three blue buttons with a black border on a white background, the center button has a white border inside, adjacent to the inner background and black border. + + + + + Example + + + + + Example + + + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg new file mode 100644 index 0000000000..deea21237a --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg @@ -0,0 +1,20 @@ + + Three blue buttons, the middle has a thick yellow outline well inside the border of the button. + + + + + Example + + + + + Example + + + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg new file mode 100644 index 0000000000..8266993e66 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg @@ -0,0 +1,17 @@ + + Three blue buttons on a white background, the middle has a dark green outline outside of the button's non-focused boundary. + + + + Example + + + + + Example + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg new file mode 100644 index 0000000000..d64c7a3dc4 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg @@ -0,0 +1,20 @@ + + Three blue buttons on a white background, the middle has a light yellow outline outside of the button’s non-focused boundary. + + + + + Example + + + + + Example + + + + + + Example + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg b/understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg new file mode 100644 index 0000000000..26e3550335 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg @@ -0,0 +1,9 @@ + + A text box with a dark background and light border, with a white background. + + + Name + + + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg b/understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg new file mode 100644 index 0000000000..e6873f7bd8 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg @@ -0,0 +1,8 @@ + + A label with a text input shown by a dark blue page background, and white box. + + + Name + + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg b/understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg new file mode 100644 index 0000000000..0636a662bf --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg @@ -0,0 +1,8 @@ + + A label with a text input shown by a complete border. + + + Name + + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg b/understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg new file mode 100644 index 0000000000..2bf292f478 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg @@ -0,0 +1,10 @@ + + A label with a text input with a faint gray outline and a visible cursor/caret. + + + Name + + + + + diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg b/understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg new file mode 100644 index 0000000000..ee195aef83 --- /dev/null +++ b/understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg @@ -0,0 +1,12 @@ + + A label with a text input shown by a bottom border and faint grey background. + + + Name + + + + + + + diff --git a/understanding/21/non-text-contrast.html b/understanding/21/non-text-contrast.html index ab57416b16..948c2f55fa 100644 --- a/understanding/21/non-text-contrast.html +++ b/understanding/21/non-text-contrast.html @@ -53,14 +53,14 @@

Boundaries

This success criterion does not require that controls have a visual boundary indicating the hit area, but if the visual indicator of the control is the only way to identify the control, then that indicator must have sufficient contrast. 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. If a button with text also has a colored border, since the border does not provide the only indication there is no contrast requirement beyond the text contrast (1.4.3 Contrast (Minimum)). Note that for people with cognitive disabilities it is recommended to delineate the boundary of controls to aid in the recognition of controls and therefore the completion of activities.

- Two buttons, the first with no visual indicator except text saying 'button'. The second is the same but with an added grey border. -
Pass: A button without a visual boundary, and the same button with a focus indicator that is a defined visual boundary of grey (#949494) adjacent to white.
+ {% include "understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg" %} +
Pass: A button without a visual boundary, and the same button with a focus indicator that is a defined visual boundary of grey (#949494) adjacent to white.

Adjacent colors

For user interface components 'adjacent colors' means the colors adjacent to the component. For example, if an input has a white internal background, dark border, and white external background the 'adjacent color' to the component would be the white external background.

- Standard text input with a label, white internal and external background with a dark border. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg" %}
Pass: A standard text input with a grey border (#767676) and white adjacent color outside the component
@@ -69,7 +69,7 @@

Adjacent colors

The following example shows an input that has a light background on the inside and a dark background around it. The input also has a dark grey border which is considered to be subsumed into the dark background. The border does not interfere with identifying the component, so the contrast ratio is taken between the white background and dark blue background.

- A text box with a dark background and light border, with a white background. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg" %}
Pass: The contrast of the input background (white) and color adjacent to the control (dark blue #003366) is sufficient. There is also a border (silver) on the component that is not required to contrast with either.
@@ -120,20 +120,20 @@
- Three blue buttons, the middle has a thick yellow outline well inside the border of the button. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg" %}
Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
- Three blue buttons on a white background, the middle has a light yellow outline outside of the button's non-focused boundary. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg" %}
Fail: The external yellow indicator (#FFFF00) does not contrast with the white background (#FFF) which the component is on.
- Three blue buttons on a white background, the middle has a dark green outline outside of the button's non-focused boundary. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg" %}
Pass: The external green indicator (#008000) does contrast with the white background (#FFF) which the component is on. It does not need to contrast with both the component background and the component, as visually the effect is that the button is noticeably larger, and it's not necessary for a user to be able to discern this extra border in isolation. Although this passes non-text contrast, it is not a good indicator unless it is very thick. There is a AAA criterion in WCAG 2.2 that addresses this aspect, Focus Appearance.
@@ -142,7 +142,7 @@

If an indicator is partly inside and partly outside the component, either part of the indicator could provide contrast.

- Three blue buttons on a white background, the middle has the outline of a yellow rectangle that is partly inside the button's boundary, and partly outside on the white background. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg" %}
Pass: The focus indicator is partially inside, partially outside the button. The internal part of the yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
@@ -151,21 +151,21 @@

If the focus indicator changes the border of the component within the visible boundary it must contrast with the component. Typically an outline goes around (outside) the visible boundary of the component, in this case changing the border is just inside the visible edge of the component.

- Three blue buttons on a white background, the center button has a green border exactly on the outer boundary of the button. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg" %}
Fail: The border of the control changes from blue (#4189B9) to green (#4B933A). This is within the component and does not contrast with the inside background of the component.
- Three blue buttons with a black border on a white background, the center button has a green border inside, adjacent to the inner background and black border. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg" %}
Fail: An inner border of dark green (#008000) does contrast with the black border, but does not contrast with the blue component background.
- Three blue buttons with a black border on a white background, the center button has a white border inside, adjacent to the inner background and black border. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg" %}
Pass: An inner border of white contrasts with the black border and the blue component background.
@@ -174,7 +174,7 @@

Note that this success criterion does not directly compare the focused and unfocused states of a control - if the focus state relies on a change of color (e.g., changing only the background color of a button), this success criterion does not define any requirement for the difference in contrast between the two states.

- Three blue buttons, the center button is a lighter blue than the others. + {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg" %}
Not in scope: The change of background within the component is not in scope of non-text contrast. However, this would not pass Use of color.
@@ -183,7 +183,7 @@

Hover states

The language of Non-text Contrast specifically calls out "visual information required to identify...states." When users talk about a hover state, they are normally referring to a visual effect that takes place when the pointer is positioned over a control. However, there are a number of HTML components (such as buttons, checkboxes, radio buttons, and selects) which do not by default display any additional visual effects when the user moves a pointer control over them. The pointer itself, via its location, is the indicator of whether the user is hovering on a component. Therefore, additional author-supplied visual treatments for hover are not "required to identify" the hover state. Those treatments can be considered supplemental and do not themselves need to contrast 3:1 against the background.

- +

This is not to say that other hover effects are discouraged. For instance, some native components alter the shape of the pointer when it is hovering over a control; the pointer becomes an I-beam when it hovers over text inputs and text areas. There will be cases where some users may benefit from additional visual hover effects, such as bolding text or use of drop shadows. However, other users may find strong hover effects distracting. The key consideration for any hover effect is that it does not cause a component itself to lose sufficient contrast against adjacent colors, or cause the visual indicators for other states, such as focus or selection, to lose sufficient contrast.

@@ -219,28 +219,28 @@

User Interface Component Examples

Text input (minimal) Where a text-input has a visual indicator to show it is an input, such as a bottom border (#767676), that indicator must meet 3:1 contrast ratio. - A label with a text input shown by a bottom border and faint grey background. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg" %} Text input Where a text-input has an indicator such as a complete border (#767676), that indicator must meet 3:1 contrast ratio. - A label with a text input shown by a complete border. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg" %} Text input focus style A focus indicator is required. While in this case the additional gray (#CCC) outline has an insufficient contrast of 1.6:1 against the white (#FFF) background, the cursor/caret which is displayed when the input receives focus does provide a sufficiently strong visual indication. - A label with a text input with a faint gray outline and a visible cursor/caret. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg" %} - + Text input using background color Text inputs that have no border and are differentiated only by a background color must have a 3:1 contrast ratio to the adjacent background (#043464). - A label with a text input shown by a dark blue page background, and white box. + {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg" %} @@ -412,7 +412,7 @@

Dynamic Examples

- A pie chart with one slice highlighted and a box hovering next to it that shows the data and indicates the source in the key. + A pie chart with one slice highlighted and a box hovering next to it that shows the data and indicates the source in the key.
A dynamic chart where the current 'slice' is hovered or focused, which activates the associated text display of the values and highlights the series
@@ -450,7 +450,7 @@

Essential Exception

  • Logotypes and flags: The brand logo of an organization or product is the representation of that organization and therefore exempt. Flags may not be identifiable if the colors are changed to have sufficient contrast.
  • Sensory: There is no requirement to change pictures of real life scenes such as photos of people or scenery.
  • -
  • Representing other things: If you cannot represent the graphic in any other way, it is essential. Examples include: +
  • Representing other things: If you cannot represent the graphic in any other way, it is essential. Examples include:
    • Screenshots to demonstrate how a website appeared.
    • Diagrams of medical information that use the colors found in biology (example medical schematic from Wikipedia).
    • @@ -484,7 +484,7 @@

      Testing Principles

      - +
      @@ -539,7 +539,7 @@

      Infographics

      There are many possible solutions to ensuring contrast, the example shows the use of borders. Other techniques are to use darker colors for the circle backgrounds, or to add text labels & values for each item.

      - +

      Resources

      From 566fb5443ffecd6ae4a5a90c5541c176d00d2fbc Mon Sep 17 00:00:00 2001 From: Adam Page Date: Fri, 22 Aug 2025 21:33:55 -0700 Subject: [PATCH 2/7] relocate and rename new svg assets, remove previous png assets --- ...nd.svg => 1.4.11-ntc-focus-background.svg} | 0 ...border.svg => 1.4.11-ntc-focus-border.svg} | 0 ....svg => 1.4.11-ntc-focus-inner-border.svg} | 0 ...r.svg => 1.4.11-ntc-focus-inner-outer.svg} | 0 ...e.svg => 1.4.11-ntc-focus-inner-white.svg} | 0 ...s-inner.svg => 1.4.11-ntc-focus-inner.svg} | 0 ...n.svg => 1.4.11-ntc-focus-outer-green.svg} | 0 ....svg => 1.4.11-ntc-focus-outer-yellow.svg} | 0 ...tton.svg => 1.4.11-ntc-minimal-button.svg} | 0 ...4.11-ntc-text-input-background-border.svg} | 0 ...g => 1.4.11-ntc-text-input-background.svg} | 0 ....svg => 1.4.11-ntc-text-input-default.svg} | 2 +- ...us.svg => 1.4.11-ntc-text-input-focus.svg} | 0 ....svg => 1.4.11-ntc-text-input-minimal.svg} | 0 understanding/21/img/minimal-button.png | Bin 3320 -> 0 bytes understanding/21/img/ntc-focus-background.png | Bin 4813 -> 0 bytes understanding/21/img/ntc-focus-border.png | Bin 4072 -> 0 bytes .../21/img/ntc-focus-inner-border.png | Bin 4215 -> 0 bytes .../21/img/ntc-focus-inner-outer.png | Bin 4536 -> 0 bytes .../21/img/ntc-focus-inner-white.png | Bin 4532 -> 0 bytes understanding/21/img/ntc-focus-inner.png | Bin 4770 -> 0 bytes .../21/img/ntc-focus-outer-green.png | Bin 4060 -> 0 bytes .../21/img/ntc-focus-outer-yellow.png | Bin 4486 -> 0 bytes .../21/img/text-input-background-border.png | Bin 1471 -> 0 bytes .../21/img/text-input-background.png | Bin 1450 -> 0 bytes understanding/21/img/text-input-default.png | Bin 1244 -> 0 bytes understanding/21/img/text-input-focus.png | Bin 3842 -> 0 bytes understanding/21/img/text-input-minimal.png | Bin 1303 -> 0 bytes understanding/21/non-text-contrast.html | 30 +++++++++--------- 29 files changed, 16 insertions(+), 16 deletions(-) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-background.svg => 1.4.11-ntc-focus-background.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-border.svg => 1.4.11-ntc-focus-border.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-inner-border.svg => 1.4.11-ntc-focus-inner-border.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-inner-outer.svg => 1.4.11-ntc-focus-inner-outer.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-inner-white.svg => 1.4.11-ntc-focus-inner-white.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-inner.svg => 1.4.11-ntc-focus-inner.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-outer-green.svg => 1.4.11-ntc-focus-outer-green.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg => 1.4.11-ntc-focus-outer-yellow.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/minimal-button.svg => 1.4.11-ntc-minimal-button.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/text-input-background-border.svg => 1.4.11-ntc-text-input-background-border.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/text-input-background.svg => 1.4.11-ntc-text-input-background.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/text-input-default.svg => 1.4.11-ntc-text-input-default.svg} (77%) rename understanding/21/img/{1.4.11-non-text-contrast/text-input-focus.svg => 1.4.11-ntc-text-input-focus.svg} (100%) rename understanding/21/img/{1.4.11-non-text-contrast/text-input-minimal.svg => 1.4.11-ntc-text-input-minimal.svg} (100%) delete mode 100644 understanding/21/img/minimal-button.png delete mode 100644 understanding/21/img/ntc-focus-background.png delete mode 100644 understanding/21/img/ntc-focus-border.png delete mode 100644 understanding/21/img/ntc-focus-inner-border.png delete mode 100644 understanding/21/img/ntc-focus-inner-outer.png delete mode 100644 understanding/21/img/ntc-focus-inner-white.png delete mode 100644 understanding/21/img/ntc-focus-inner.png delete mode 100644 understanding/21/img/ntc-focus-outer-green.png delete mode 100644 understanding/21/img/ntc-focus-outer-yellow.png delete mode 100644 understanding/21/img/text-input-background-border.png delete mode 100644 understanding/21/img/text-input-background.png delete mode 100644 understanding/21/img/text-input-default.png delete mode 100644 understanding/21/img/text-input-focus.png delete mode 100644 understanding/21/img/text-input-minimal.png diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg b/understanding/21/img/1.4.11-ntc-focus-background.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg rename to understanding/21/img/1.4.11-ntc-focus-background.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg b/understanding/21/img/1.4.11-ntc-focus-border.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg rename to understanding/21/img/1.4.11-ntc-focus-border.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg b/understanding/21/img/1.4.11-ntc-focus-inner-border.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg rename to understanding/21/img/1.4.11-ntc-focus-inner-border.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg b/understanding/21/img/1.4.11-ntc-focus-inner-outer.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg rename to understanding/21/img/1.4.11-ntc-focus-inner-outer.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg b/understanding/21/img/1.4.11-ntc-focus-inner-white.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg rename to understanding/21/img/1.4.11-ntc-focus-inner-white.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg b/understanding/21/img/1.4.11-ntc-focus-inner.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg rename to understanding/21/img/1.4.11-ntc-focus-inner.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg b/understanding/21/img/1.4.11-ntc-focus-outer-green.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg rename to understanding/21/img/1.4.11-ntc-focus-outer-green.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg b/understanding/21/img/1.4.11-ntc-focus-outer-yellow.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg rename to understanding/21/img/1.4.11-ntc-focus-outer-yellow.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg b/understanding/21/img/1.4.11-ntc-minimal-button.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg rename to understanding/21/img/1.4.11-ntc-minimal-button.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg b/understanding/21/img/1.4.11-ntc-text-input-background-border.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg rename to understanding/21/img/1.4.11-ntc-text-input-background-border.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg b/understanding/21/img/1.4.11-ntc-text-input-background.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg rename to understanding/21/img/1.4.11-ntc-text-input-background.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg b/understanding/21/img/1.4.11-ntc-text-input-default.svg similarity index 77% rename from understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg rename to understanding/21/img/1.4.11-ntc-text-input-default.svg index 0636a662bf..82ea0232c7 100644 --- a/understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg +++ b/understanding/21/img/1.4.11-ntc-text-input-default.svg @@ -1,5 +1,5 @@ - A label with a text input shown by a complete border. + Standard text input with a label, white internal and external background with a dark border. Name diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg b/understanding/21/img/1.4.11-ntc-text-input-focus.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg rename to understanding/21/img/1.4.11-ntc-text-input-focus.svg diff --git a/understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg b/understanding/21/img/1.4.11-ntc-text-input-minimal.svg similarity index 100% rename from understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg rename to understanding/21/img/1.4.11-ntc-text-input-minimal.svg diff --git a/understanding/21/img/minimal-button.png b/understanding/21/img/minimal-button.png deleted file mode 100644 index c21c3d4470f129a33323883b7a62c5885b575787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3320 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 GC;tWqVPXXU diff --git a/understanding/21/img/ntc-focus-background.png b/understanding/21/img/ntc-focus-background.png deleted file mode 100644 index 32b480ebc205e043c56421cb11d2d001c7219b12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4813 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 B=tKYj diff --git a/understanding/21/img/ntc-focus-border.png b/understanding/21/img/ntc-focus-border.png deleted file mode 100644 index dc374b654a2828eccdee3055b42ddb51747e1b52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4072 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 XUr?MnDOZ-p{rj^twKFL<@?!oAbLXXR diff --git a/understanding/21/img/ntc-focus-inner-border.png b/understanding/21/img/ntc-focus-inner-border.png deleted file mode 100644 index 5d564ffce7a029ccf4080f4b28aeee02933f0ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4215 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 diff --git a/understanding/21/img/ntc-focus-inner-outer.png b/understanding/21/img/ntc-focus-inner-outer.png deleted file mode 100644 index cfc69d0af83732b9550f22fad2aea14e58d576e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4536 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 YVP;zh4xPS8&rnV-fMqY9M23swV=>Px# diff --git a/understanding/21/img/ntc-focus-inner-white.png b/understanding/21/img/ntc-focus-inner-white.png deleted file mode 100644 index 9ca6d0ed5b34fab42e5da912c808050da277fb55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4532 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 oq_u!||fECNsti6J`cuCrl`mrKC{V36sVyOGJps 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 diff --git a/understanding/21/img/ntc-focus-outer-yellow.png b/understanding/21/img/ntc-focus-outer-yellow.png deleted file mode 100644 index b8266cac0fabdd00ce3a0904a54c26fbb3e31b7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4486 zcmbtXc|4Ts+aG(#R)`i&gGj^JmuZG$H?l-zs5HY2Gg*e2VTMR1OB9Lhs*|nkgOn_h z)3GN@BsxTL2x+k#`}+*4(|gYEeLwH#{o{T<&wYQt*Z02e>$>mjex9fkR;B`cd-*^h zkO0ce$QA@*iv!-#JJ^AzorvZFFu))h8lIroni_yn#)g_II+~h_s!A##ko*n58`Z}- z^o1kqjATC>b1Fii45OpcDlVOkkW8BsS7jJB>0|AN&F?CY3zv#{a&dJvI@}EjeaNT) z%SVHgT#5);BN=L;oGRt*9gph%ko0$dy4UKcWbF_~s;4tQ_iD#dGoxpLam&Q>FNtV{ zD){cS9VdHqXG>E)_j&c@2Y)>0;T$`~hn{Z8iq3x@E*E~!;cI@&v4#WY3RTdc!*A}j zaD~rWAWw}tBqYeLYdZ4tG}R9rp0+sUTNs^qGf5;V`CV%^zxk5x_;IJv*N@|#d4E=- zGB`iI!$tcxX3KG0Yo7isCi$YHjr8!>biLzNWU*BHzE1QZR5T(uQ#?EHjElispmLUNGah4J7&{VXg1>BY7rG&+iT<}VCFCTyn0wMJ1 zK3G=|JQeJMcPDxyA+yzW5HJykgg9teDqH#(;t52vKr;Shpp~6#pogmt4x*>ahoHj& z0WUli3#NN{dQ;$ZBxF+;4!pC5VG!^ph3bKXpe;{;4M}7?SVKueNg1Nc2S$)_Zg5*8 zlWk+5hlCKQR3A7DMx)V`XlhC%vO7#gM@I*ytO`?ARRkD{lmKrkmagbck!DG3X&B)t zu4JMQl}Pdivox_TBtI$=0s(OFwm6mO_Cwv9vb}sD5HJ=3Q&Cce{hf}d6aNF9h5Uo= zLm*K}6avZT`vQKN;ye5gLm+(rZbHZU{2STQ@_(j#dHu8u3f0&j2*h?!fAZz?syBlw>y=9glKF3H^702V~wjTEB^pkN}hhK zRM>kHfw@(GKb?lUN;2N56Wv!#iD)8;NY_fsVfWuO;{~MpRr@;uo!qO6MMx;Ut74cQ_clnP)iGl@)d*#D`46`MKh8o2~+KTPTI(Mx|lNczt&u#Yl+0 zn;Q{GPyqM@Ywv(UB|DwU z$-!?G&?Y=ZOJVHkad8+aw9`!3;G?GSaP8nH%PqfJhwOSVjzXK1tc^A8>(gmRR0XSw zbFX^7L_T5$CFHBZD87Ualv2^{; zfw|}o<2PeedesHOLY(i(cMtUjrJ3Tev{`M`jAW`|kuW^9siAMxH-y(Wef7LouVU(@ zdHYaP!d_@r?W5a)+88dWx#(7w1iEUaF_Nv%sN&D0{pZ6wTM*(;S`RKh465I&@)cRq zJgudD(0t6F4dU z)3Mc1L3SnxDpAkQ#DMtg8EjDC$r}0A;oe3!NB)o0O{wp)ET!+_-(*?n_H<=xn0b0# z9ZApaXjjn26m&i9#qj-d9n2w-Q#|6fAPgJYjPnu~W}c1NZRLT*22!4QU%Xtv$8MW zth_j`j?&-z2S2Yp^=17{TaAy6-SYE+!_Ji#L)c*18ei|8e2-5QxE23QBI}%3vi*j} z_)6D>$-c7+&>APp=U0nQJtD&IJO6&`LcuzPadBU|Z*kR=aA%8P$_0~_dCBFJWfHuB zbn^`QiRYi6%f%|vVmqv&5*;)Oue{K>BU9BpG=02RK+&RLX5wb?D|Hju&K;Q!n$8~UmRu%&U1GeTO^E$WLQXQ1fxb< z`8dUQVf`?NxE?Ndu1%!w%N)Nk$|sUnl;{3e-BjAZxVLV@(atbw113T<-G#PhB@J_Y z1RGXHWk)0}FfSV)oN2vV5H%=vCNI;`Wh3e+gkpk%RGf$J`r4)`D}FUXUBqT%LK8LW zXFD5Z1{Ksp%T#sg`M>Y)G^Aay4r7<9a)tIwFbPL59^VioMzw8JyIJ49|90PvszBP% z!Cc`e6A&TOlXd*8EbW9gf!yjm8H79v!1@An44A4@dQJ|`!XkGUk%RE zqWKuhymG}7vP3KTs~Lun=$H66{EvRmQF>E2rHRs5bP|}YJT?V^Su4n^S#|@7cN^`0 znOiz}(qP3r3}VeY;|uKUv zj~(E@4uZCr*MAwNW?O}19LnVv3Fd?U&M+smDZ1@+a-!L*rP@pBpt`tuN-JWDYT}f- zXP(^36?FchKke&mP(Y|^i1d9uBp#%0l3HKZWF)^6y>LwYCP(2jhU&oCbSFe+7Cv9Q zTI~81!L?m)O@G$0TQB&`vY&Wj%_Hf8yN_=<96wTZ*dhKy`XDX$&V>-uzS43nW8PV8 zE(%V~&q&UAe9Ew-Rc_iR>4|-&_xr+Mwkrd8D(Mqj-9*;xuI~084@p^N5L_+6Nb4m1q3w40rJ~J{Z(m ztuGZ|YrDAnt_0@w3YrOL5|+*n-9FTU`<&HfbH!$9?(J-cbl-H#?sL26yI+l1&%1@M zzcqa_@~3P>%AO(wHMm0=Rl_^;Tk;G-_g&<0WM*qkVsgtheNt%B)0fX0BCoCqL1h{~ z)En@5g3y}SESV9Zzknov;#n0{6=xOUC=gJKWq7wLZ`5BlyaTt^|vu-W_y>S13?}@Ea|1ZU#1pqgnM@de3rj><|RVZFPoO*M^ye(7% z@7K_7>3AhQLr`aRIimfkQb?I7y5z6+E7~TTx2FNFxGf$w#+Fp#G&8+o?dN$!u?!{ zFe~Q*T2gEXt$c9oh(=;9ci+CA+`Rp!0<@4eVk-h|veCV!*sGk3N|5tN#fhW6CG+ZR z1tjLa@{)wotJ;aJ)y!*B>cqScQG5J74-7~%S6@=>^vKjeFOjO^X{q()U6CT*9kAHE z+LOJfF~+8*&r@e=F~u8)OqCIJiFh`pEjcsl{?!DLdCC}S(5Vgn50zW{IeV}<|# diff --git a/understanding/21/img/text-input-background-border.png b/understanding/21/img/text-input-background-border.png deleted file mode 100644 index 45051d8478f8fdc8a6322d756ab7bcceb1ed0865..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1471 zcmaLXYd8}M90u@Bc%gt_UED->K#r*DE0OArF@gl(WFw1+Rwm*g<`1? zNf6A&VEt(1Gru&TlK9Xt)3}(tTAy%U5tVD$gGYv({~N zzOr-Mjr|o8mGAQXw}FC`Ra8+9<`N$bN4p{oxS80e^|nw@hScLn*E)Uk6#V)jrlT(A z+zIuZliS(pbAug=RooE7^b!=Qy5j}lI4*f18n_`*gY;g(^?L&a{jMEN$h2E_(A4Q8 z>cTIH?Sa|pXn$0g2RUk};M^>*3gmJ>`fTxGC8xvQSg0~k*sO~T{57OR5J4eV;< z({Qc4P}LyC9@F*h#Azt&jUAZpY+akA92O)%lapR2x&o)hb!(LPDDT|;P3md(?ga!N zB;sacfA5_$=9N~YJSpX7X+(S;!bvZg)#oZmA2TkAmO|rYhIKHRVk6D(<@{*g{A#Q? zQ)iw%)QWh)dr{b!N{E)|b&?LGP^p;Oz2ywJ3W;@5ClErg$q(yGIPZZYMAT()464Lu zoCy0f=9~6Q))G1~GhG)(nn)M#OK&b~a4eIPv!g)dVk#QeTFqtue4*T0p8y&WincE9^4RMTSWL(iOb-vzeZr zW+*EGK@1)Qh^79tMH%k!C}F;_B8+xMZQF)}ciCs&arhRr-dGGdY`$*!s+U-{aoLv1 zaH&I|^h(>P?w?}c_TnT)^r@C4nY;!;amN5p<&$p-`t8TGJ61#%Ox zP}SI+p*0F+lpEFn?g;ciH@mT&71I99^Sp_nkF>pS0eAR#H(LXy-SBf2wY#`Exx}eY zQZ0S+_+t9bM+}b@%ZckyTwQC{?mGIpdrT?pz`}=sdN}`#l<>w_8=X?m6vA ziOkjYp5OH0Kp3L0N;NBhJ?;$-te#n&p~!JVx0i(ZvDdKbpB(@2?6DNa3U0_AREMtp zEy<~TfXB~gwe8afbBX2YttrvBAMMU?L$9CmMk4l}YTiFs8wn{{$miYJ2<_}P(F`Sv zWXkkB&c)EinN+N~5z&~mz)^%eku-6`9z#VwOiK6dZ2EG=7VB3D z1Q*fkI9R7(Ub;{27dWvT?XAC*?gL(f|67m$aPm6vdNY?cbs!O8@7sOI4Cf0RCOq&% dy?*Fh$35y|oV6Wd0DK5Dz}$p@t-S0K^AB^{vUdOg diff --git a/understanding/21/img/text-input-background.png b/understanding/21/img/text-input-background.png deleted file mode 100644 index 8776771426faf56c1a35786dad4c2df42a77ff6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1450 zcmeAS@N?(olHy`uVBq!ia0y~yU}OWbtvNvC%w;OSffQqLkh>GZx^prwfgF}}M_)$< zhK>E)e-c@Ne9i)o$YKTtl@}n)*p$pF0~8c0ag8Vm&QB{TPb^Aha4$+t%`48xFNq7~ z0BT`X^mK6ysfc?!>%8|IcZuVBtKP~_$mVNw^6;;I9azM{vggZ%;MsCwOrlLe98*jt zIdd*$;XnB0O3TtoLAuifwoFlN3cHxIMCz>mTD{Xzs{_roXU9&@Prog<(y zqf2qANzTy;K~me2JT!TuaVuk0+^2MP^X4Rvvm(Ne>xxRcF{E!5@y*L!rV_xSo|jqDZa=0!hvrVD*c_D#Ma!C^TKEP6z$dC`QO z-F~kta(JYf6^{$8oHutX^XCisYm@U9ud1tP{kZz%jgL1Z%-EdzRDrI^X3v-V_3mEf zlP|Gla*va|JDCxs17nXi~ z8GG!B!{u#{7ia!i=O50WW4qe4?OEF5cbk`AHj=x$?~cUni4upEW$h)6lPCYkiPIOJ zb?l|uw7Qj1uAg!bFx+*>W?Siih-|zV)QNL=%riI(YF9yX%7;Xuz-Sv9^ zmZgSoR=OqkuYLM@M_w*_UQ&to(cbEnQ%^S9#pdQqCHHWa>euF|_6nap&Zh_s9|hYl zo-wDUghaT0OW&)Ke_z6C_qqkE>rHO4-TANEzO|_`{K6%PGJ{LW^P^8+FVLN~^^Ue> z`x?1v(OuiLw;7*!5qkWZ&91fCGJY_}opqkSqnmT@di#pb_th3C2GYdUh8Ym zl49GxPDK%v;mSUk_c~U7+7`)r5nroa*s}!rKxtro*IJW i6(qRJ8^&tJdd7}tjh;2xrHgEO diff --git a/understanding/21/img/text-input-default.png b/understanding/21/img/text-input-default.png deleted file mode 100644 index 033604eedaeb8af880185f88b5e61fb2030d3773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 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 diff --git a/understanding/21/img/text-input-minimal.png b/understanding/21/img/text-input-minimal.png deleted file mode 100644 index 5fff64b39416c472dad3d3ebf5580aeecbdab685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yVB`d{^*Gpor1iEpaX^Z(ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-IM`SSrgUSmKW^77kl>rJ0mAFQf1m~xflqVLYGPoC|rsfrA)i#86+1jz0$N@w^t5FOwD5eKpsJvwARtmy=9x!edY3gf7^R`uBGSs_W5<1 zKd#>AuTikud%2bUeewS(%!(~32RsCvj1pBi6lWR;wM_7l;B@j(>tRt;5q4`5n8c}^ zc(B4|*%eP!10k^)YV(7{ryTHzNSIaQ6&t{$oY@-+Dt|yQO*>2bF}p>Y3FO_f&GZHC?*BhGn;h#@}AyGv!Sa z7kn|(e)w#nhWW*HRazpdIrGn@!36^tCHQu)c%j{O$!wW*VxLRJKe6hyQty8M{NZ)P zd0~We_Ip{qM~1TwZ~M2V_uzeIo7F#0yxthccsiS1V%6iAx{A(g<*XG|)%Vx{W@p&>#tqaK`S}2uU9+TkMI8@%u!{L(Og8 zRgPg7t}g%C@zbNG@@vT4tJ6RHsdyIhFO#4DiqhGYM`s&!9?7Y=QuyxWTkj0Mpwl)o z3s!#5=XzY}&ha)1WO5=L5h2d`(*qW;Cy!7E>#ZSTc z$6x+#eVu16*5gvNyYOqzqy2|Xeooo7fF)4n%BF*X?#CVUpM9B8F@NWCPQ`QgO*Sq$ zZfE82sm@uf(=g6_&x(>Oo{Ce@7Y0dh&=9+WO%g_H=xp9++#-#tv)Awk-O|D8TZ(s{pl&o`$1b9=8ox}N@zZIb!qM?e$g^F%KnkG^|k z_U6+SM_AmN?zyVoQ4mr&2=Rs6Ats1(BsjT!Ci}1C_DWFEF#u3Aj$BbiTS>+Boundaries

      This success criterion does not require that controls have a visual boundary indicating the hit area, but if the visual indicator of the control is the only way to identify the control, then that indicator must have sufficient contrast. 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. If a button with text also has a colored border, since the border does not provide the only indication there is no contrast requirement beyond the text contrast (1.4.3 Contrast (Minimum)). Note that for people with cognitive disabilities it is recommended to delineate the boundary of controls to aid in the recognition of controls and therefore the completion of activities.

      - {% include "understanding/21/img/1.4.11-non-text-contrast/minimal-button.svg" %} + {% include "./img/1.4.11-ntc-minimal-button.svg" %}
      Pass: A button without a visual boundary, and the same button with a focus indicator that is a defined visual boundary of grey (#949494) adjacent to white.

      Adjacent colors

      For user interface components 'adjacent colors' means the colors adjacent to the component. For example, if an input has a white internal background, dark border, and white external background the 'adjacent color' to the component would be the white external background.

      - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg" %} + {% include "./img/1.4.11-ntc-text-input-default.svg" %}
      Pass: A standard text input with a grey border (#767676) and white adjacent color outside the component
      @@ -69,7 +69,7 @@

      Adjacent colors

      The following example shows an input that has a light background on the inside and a dark background around it. The input also has a dark grey border which is considered to be subsumed into the dark background. The border does not interfere with identifying the component, so the contrast ratio is taken between the white background and dark blue background.

      - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-background-border.svg" %} + {% include "./img/1.4.11-ntc-text-input-background-border.svg" %}
      Pass: The contrast of the input background (white) and color adjacent to the control (dark blue #003366) is sufficient. There is also a border (silver) on the component that is not required to contrast with either.
      @@ -120,20 +120,20 @@
    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner.svg" %} + {% include "./img/1.4.11-ntc-focus-inner.svg" %}
    Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-yellow.svg" %} + {% include "./img/1.4.11-ntc-focus-outer-yellow.svg" %}
    Fail: The external yellow indicator (#FFFF00) does not contrast with the white background (#FFF) which the component is on.
    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-outer-green.svg" %} + {% include "./img/1.4.11-ntc-focus-outer-green.svg" %}
    Pass: The external green indicator (#008000) does contrast with the white background (#FFF) which the component is on. It does not need to contrast with both the component background and the component, as visually the effect is that the button is noticeably larger, and it's not necessary for a user to be able to discern this extra border in isolation. Although this passes non-text contrast, it is not a good indicator unless it is very thick. There is a AAA criterion in WCAG 2.2 that addresses this aspect, Focus Appearance.
    @@ -142,7 +142,7 @@

    If an indicator is partly inside and partly outside the component, either part of the indicator could provide contrast.

    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-outer.svg" %} + {% include "./img/1.4.11-ntc-focus-inner-outer.svg" %}
    Pass: The focus indicator is partially inside, partially outside the button. The internal part of the yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
    @@ -151,21 +151,21 @@

    If the focus indicator changes the border of the component within the visible boundary it must contrast with the component. Typically an outline goes around (outside) the visible boundary of the component, in this case changing the border is just inside the visible edge of the component.

    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-border.svg" %} + {% include "./img/1.4.11-ntc-focus-border.svg" %}
    Fail: The border of the control changes from blue (#4189B9) to green (#4B933A). This is within the component and does not contrast with the inside background of the component.
    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-border.svg" %} + {% include "./img/1.4.11-ntc-focus-inner-border.svg" %}
    Fail: An inner border of dark green (#008000) does contrast with the black border, but does not contrast with the blue component background.
    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-inner-white.svg" %} + {% include "./img/1.4.11-ntc-focus-inner-white.svg" %}
    Pass: An inner border of white contrasts with the black border and the blue component background.
    @@ -174,7 +174,7 @@

    Note that this success criterion does not directly compare the focused and unfocused states of a control - if the focus state relies on a change of color (e.g., changing only the background color of a button), this success criterion does not define any requirement for the difference in contrast between the two states.

    - {% include "understanding/21/img/1.4.11-non-text-contrast/ntc-focus-background.svg" %} + {% include "./img/1.4.11-ntc-focus-background.svg" %}
    Not in scope: The change of background within the component is not in scope of non-text contrast. However, this would not pass Use of color.
    @@ -219,28 +219,28 @@

    User Interface Component Examples

    Text input (minimal) Where a text-input has a visual indicator to show it is an input, such as a bottom border (#767676), that indicator must meet 3:1 contrast ratio. - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-minimal.svg" %} + {% include "./img/1.4.11-ntc-text-input-minimal.svg" %} Text input Where a text-input has an indicator such as a complete border (#767676), that indicator must meet 3:1 contrast ratio. - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-default.svg" %} + {% include "./img/1.4.11-ntc-text-input-default.svg" %} Text input focus style A focus indicator is required. While in this case the additional gray (#CCC) outline has an insufficient contrast of 1.6:1 against the white (#FFF) background, the cursor/caret which is displayed when the input receives focus does provide a sufficiently strong visual indication. - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-focus.svg" %} + {% include "./img/1.4.11-ntc-text-input-focus.svg" %} Text input using background color Text inputs that have no border and are differentiated only by a background color must have a 3:1 contrast ratio to the adjacent background (#043464). - {% include "understanding/21/img/1.4.11-non-text-contrast/text-input-background.svg" %} + {% include "./img/1.4.11-ntc-text-input-background.svg" %} From 9631fd286fa8eb063c6d401b543691d4d5928619 Mon Sep 17 00:00:00 2001 From: Adam Page Date: Fri, 22 Aug 2025 22:19:11 -0700 Subject: [PATCH 3/7] replace checkbox, custom radio, and star rating assets --- .../21/img/1.4.11-ntc-checkbox-purple.svg | 6 ++++++ .../21/img/1.4.11-ntc-radio-custom.svg | 21 +++++++++++++++++++ .../21/img/1.4.11-ntc-star-examples-fail.svg | 11 ++++++++++ .../21/img/1.4.11-ntc-star-examples-pass.svg | 14 +++++++++++++ understanding/21/non-text-contrast.html | 8 +++---- 5 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-purple.svg create mode 100644 understanding/21/img/1.4.11-ntc-radio-custom.svg create mode 100644 understanding/21/img/1.4.11-ntc-star-examples-fail.svg create mode 100644 understanding/21/img/1.4.11-ntc-star-examples-pass.svg diff --git a/understanding/21/img/1.4.11-ntc-checkbox-purple.svg b/understanding/21/img/1.4.11-ntc-checkbox-purple.svg new file mode 100644 index 0000000000..5488b1d936 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-purple.svg @@ -0,0 +1,6 @@ + + A purple box with a light grey check. + + + + diff --git a/understanding/21/img/1.4.11-ntc-radio-custom.svg b/understanding/21/img/1.4.11-ntc-radio-custom.svg new file mode 100644 index 0000000000..6bc13cfc64 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-radio-custom.svg @@ -0,0 +1,21 @@ + + Four radio buttons, the first is a plain circle labelled 'Not selected'. The second shows the circle filled with a darker color than the border. The third is filled with the same color as the border. The fourth has an inner filled circle with a gap between it and the outer border. + + + + Not selected + + + + Selected + + + + Selected + + + + + Selected + + diff --git a/understanding/21/img/1.4.11-ntc-star-examples-fail.svg b/understanding/21/img/1.4.11-ntc-star-examples-fail.svg new file mode 100644 index 0000000000..69a2b3799b --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-star-examples-fail.svg @@ -0,0 +1,11 @@ + + Two star ratings, the first uses 5 stars with a black outline and a yellow or white fill, where yellow indicates checked. The second uses only pale yellow stars on white. + + + + + + + + + diff --git a/understanding/21/img/1.4.11-ntc-star-examples-pass.svg b/understanding/21/img/1.4.11-ntc-star-examples-pass.svg new file mode 100644 index 0000000000..1d69b32bb9 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-star-examples-pass.svg @@ -0,0 +1,14 @@ + + Two star ratings, one uses a black outline (on white) with a black fill to indicate it is checked. The second has a yellow fill and a thicker dark border. + + + + + + + + + + + + diff --git a/understanding/21/non-text-contrast.html b/understanding/21/non-text-contrast.html index f61d4d00ea..1f08b68ac0 100644 --- a/understanding/21/non-text-contrast.html +++ b/understanding/21/non-text-contrast.html @@ -76,14 +76,14 @@

    Adjacent colors

    For visual information required to identify a state, such as the check in a checkbox or the thumb of a slider, that part might be within the component so the adjacent color might be another part of the component.

    - A purple box with a light grey check. + {% include "./img/1.4.11-ntc-checkbox-purple.svg" %}
    Pass: A customized checkbox with light grey check (#E5E5E5), which has a contrast ratio of 5.6:1 with the purple box (#6221EA).

    It is possible to use a flat design where the status indicator fills the component and does not contrast with the component, but does contrast with the colors adjacent to the component.

    - Four radio buttons, the first is a plain circle labelled 'Not selected'. The second shows the circle filled with a darker color than the border. The third is filled with the same color as the border. The fourth has an inner filled circle with a gap between it and the outer border. + {% include "./img/1.4.11-ntc-radio-custom.svg" %}
    Pass: The first radio button shows the default state with a grey (#949494) circle. The second and third show the radio button selected and filled with a color that contrasts with the color adjacent to the component. The last example shows the state indicator contrasting with the component colors.
    @@ -94,12 +94,12 @@

    Non-text information within controls that uses a change of hue alone to convey the value or state of an input, such as a 1-5 star indicator with a black outline for each star filled with either yellow (full) or white (empty) is likely to fail the Use of color criterion rather than this one.

    - Two star ratings, one uses a black outline (on white) with a black fill to indicate it is checked. The second has a yellow fill and a thicker dark border. + {% include "./img/1.4.11-ntc-star-examples-pass.svg" %}
    Pass: Two examples which pass this success criterion, using either a solid fill to indicate a checked-state that has contrast, or a thicker border as well as yellow fill.
    - Two star ratings, the first uses 5 stars with a black outline and a yellow or white fill, where yellow indicates checked. The second uses only pale yellow stars on white. + {% include "./img/1.4.11-ntc-star-examples-fail.svg" %}
    Fail: The first example fails the Use of color criterion due to relying on yellow and white hues. The second example fails the Non-text contrast criterion due to the yellow (#FFF000) to white contrast ratio of 1.2:1.
    From e7a7eefddd0c3f4e8dc79865a4d591f214242042 Mon Sep 17 00:00:00 2001 From: Adam Page Date: Fri, 22 Aug 2025 22:24:32 -0700 Subject: [PATCH 4/7] fix checkmark color --- understanding/21/img/1.4.11-ntc-checkbox-purple.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/understanding/21/img/1.4.11-ntc-checkbox-purple.svg b/understanding/21/img/1.4.11-ntc-checkbox-purple.svg index 5488b1d936..c02aae8309 100644 --- a/understanding/21/img/1.4.11-ntc-checkbox-purple.svg +++ b/understanding/21/img/1.4.11-ntc-checkbox-purple.svg @@ -2,5 +2,5 @@ A purple box with a light grey check. - + From ec502feca75eda6f8e2ca91ea98a647e0e56ae0f Mon Sep 17 00:00:00 2001 From: Adam Page Date: Thu, 25 Sep 2025 17:19:07 -0700 Subject: [PATCH 5/7] replace checkbox, link, dropdown, and other assets --- .../21/img/1.4.11-ntc-button-background.svg | 9 +++ .../img/1.4.11-ntc-buttons-text-symbols.svg | 14 ++++ .../21/img/1.4.11-ntc-checkbox-example1.svg | 8 ++ .../21/img/1.4.11-ntc-checkbox-example2.svg | 9 +++ .../21/img/1.4.11-ntc-checkbox-example3.svg | 9 +++ .../21/img/1.4.11-ntc-checkbox-example4.svg | 25 ++++++ .../21/img/1.4.11-ntc-checkbox-example5.svg | 9 +++ .../21/img/1.4.11-ntc-default-link-focus.svg | 9 +++ .../21/img/1.4.11-ntc-default-link-text.svg | 8 ++ understanding/21/img/1.4.11-ntc-dropdown.svg | 9 +++ understanding/21/img/1.4.11-ntc-dropdown2.svg | 8 ++ .../21/img/1.4.11-ntc-link-underline-only.svg | 11 +++ understanding/21/img/1.4.11-ntc-toggle.svg | 6 ++ understanding/21/img/button-background.png | Bin 2714 -> 0 bytes understanding/21/img/buttons-text-symbols.png | Bin 1553 -> 0 bytes understanding/21/img/checkbox-example1.png | Bin 4482 -> 0 bytes understanding/21/img/checkbox-example2.png | Bin 4821 -> 0 bytes understanding/21/img/checkbox-example3.png | Bin 4879 -> 0 bytes understanding/21/img/checkbox-example4.png | Bin 25451 -> 0 bytes understanding/21/img/checkbox-example5.png | Bin 3094 -> 0 bytes understanding/21/img/dropdown.png | Bin 3388 -> 0 bytes understanding/21/img/dropdown2.png | Bin 2648 -> 0 bytes understanding/21/img/link-text-default.png | Bin 1070 -> 0 bytes .../21/img/ntc-default-link-focus.png | Bin 4252 -> 0 bytes .../21/img/ntc-link-underline-only.png | Bin 12428 -> 0 bytes understanding/21/img/toggle.png | Bin 5678 -> 0 bytes understanding/21/non-text-contrast.html | 71 +++++++++--------- 27 files changed, 169 insertions(+), 36 deletions(-) create mode 100644 understanding/21/img/1.4.11-ntc-button-background.svg create mode 100644 understanding/21/img/1.4.11-ntc-buttons-text-symbols.svg create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-example1.svg create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-example2.svg create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-example3.svg create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-example4.svg create mode 100644 understanding/21/img/1.4.11-ntc-checkbox-example5.svg create mode 100644 understanding/21/img/1.4.11-ntc-default-link-focus.svg create mode 100644 understanding/21/img/1.4.11-ntc-default-link-text.svg create mode 100644 understanding/21/img/1.4.11-ntc-dropdown.svg create mode 100644 understanding/21/img/1.4.11-ntc-dropdown2.svg create mode 100644 understanding/21/img/1.4.11-ntc-link-underline-only.svg create mode 100644 understanding/21/img/1.4.11-ntc-toggle.svg delete mode 100644 understanding/21/img/button-background.png delete mode 100644 understanding/21/img/buttons-text-symbols.png delete mode 100644 understanding/21/img/checkbox-example1.png delete mode 100644 understanding/21/img/checkbox-example2.png delete mode 100644 understanding/21/img/checkbox-example3.png delete mode 100644 understanding/21/img/checkbox-example4.png delete mode 100644 understanding/21/img/checkbox-example5.png delete mode 100644 understanding/21/img/dropdown.png delete mode 100644 understanding/21/img/dropdown2.png delete mode 100644 understanding/21/img/link-text-default.png delete mode 100644 understanding/21/img/ntc-default-link-focus.png delete mode 100644 understanding/21/img/ntc-link-underline-only.png delete mode 100644 understanding/21/img/toggle.png diff --git a/understanding/21/img/1.4.11-ntc-button-background.svg b/understanding/21/img/1.4.11-ntc-button-background.svg new file mode 100644 index 0000000000..ec7fb81bdf --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-button-background.svg @@ -0,0 +1,9 @@ + + Button with a faint blue background. + + + + + Button + + diff --git a/understanding/21/img/1.4.11-ntc-buttons-text-symbols.svg b/understanding/21/img/1.4.11-ntc-buttons-text-symbols.svg new file mode 100644 index 0000000000..f5a832a283 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-buttons-text-symbols.svg @@ -0,0 +1,14 @@ + + A button using an uppercase 'X' and a button with a greater-than character + + + + + X + + + + + > + + diff --git a/understanding/21/img/1.4.11-ntc-checkbox-example1.svg b/understanding/21/img/1.4.11-ntc-checkbox-example1.svg new file mode 100644 index 0000000000..7911e7e782 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-example1.svg @@ -0,0 +1,8 @@ + + Black square border with a text label. + + + + Item + + diff --git a/understanding/21/img/1.4.11-ntc-checkbox-example2.svg b/understanding/21/img/1.4.11-ntc-checkbox-example2.svg new file mode 100644 index 0000000000..7ac2468fb1 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-example2.svg @@ -0,0 +1,9 @@ + + Black square border with a tick inside, and a text label. + + + + Item + + + diff --git a/understanding/21/img/1.4.11-ntc-checkbox-example3.svg b/understanding/21/img/1.4.11-ntc-checkbox-example3.svg new file mode 100644 index 0000000000..f011c0e460 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-example3.svg @@ -0,0 +1,9 @@ + + Grey box on a white background with a black tick in the middle. + + + + Item + + + diff --git a/understanding/21/img/1.4.11-ntc-checkbox-example4.svg b/understanding/21/img/1.4.11-ntc-checkbox-example4.svg new file mode 100644 index 0000000000..93f016b614 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-example4.svg @@ -0,0 +1,25 @@ + + Checkbox with a black border and a circular grey background next to a text label. + + + + + Item + + + + + + + + + + + + + + + + + + diff --git a/understanding/21/img/1.4.11-ntc-checkbox-example5.svg b/understanding/21/img/1.4.11-ntc-checkbox-example5.svg new file mode 100644 index 0000000000..f298c4f575 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-checkbox-example5.svg @@ -0,0 +1,9 @@ + + Unchecked checkbox with a thick gray additional outline as focus indication. + + + + Item + + + diff --git a/understanding/21/img/1.4.11-ntc-default-link-focus.svg b/understanding/21/img/1.4.11-ntc-default-link-focus.svg new file mode 100644 index 0000000000..e6b7c9428f --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-default-link-focus.svg @@ -0,0 +1,9 @@ + + A browser-default styled link, with a solid mid-blue outline around the link. + + + + Link text + + + diff --git a/understanding/21/img/1.4.11-ntc-default-link-text.svg b/understanding/21/img/1.4.11-ntc-default-link-text.svg new file mode 100644 index 0000000000..bd847c483e --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-default-link-text.svg @@ -0,0 +1,8 @@ + + A browser-default styled link, blue with an underline. + + + Link text + + + diff --git a/understanding/21/img/1.4.11-ntc-dropdown.svg b/understanding/21/img/1.4.11-ntc-dropdown.svg new file mode 100644 index 0000000000..da90539c07 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-dropdown.svg @@ -0,0 +1,9 @@ + + Button with the word Menu, and a down-arrow icon next to it. + + + + Menu + + + diff --git a/understanding/21/img/1.4.11-ntc-dropdown2.svg b/understanding/21/img/1.4.11-ntc-dropdown2.svg new file mode 100644 index 0000000000..652688fdfa --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-dropdown2.svg @@ -0,0 +1,8 @@ + + Text with the word Menu, and a down-arrow icon next to it. + + + Menu + + + diff --git a/understanding/21/img/1.4.11-ntc-link-underline-only.svg b/understanding/21/img/1.4.11-ntc-link-underline-only.svg new file mode 100644 index 0000000000..503f8bfcde --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-link-underline-only.svg @@ -0,0 +1,11 @@ + + White non-link and link text on an almost black background. The link text has a dull-red underline. + + + Some + + + link text + + + diff --git a/understanding/21/img/1.4.11-ntc-toggle.svg b/understanding/21/img/1.4.11-ntc-toggle.svg new file mode 100644 index 0000000000..04c1c087f2 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-toggle.svg @@ -0,0 +1,6 @@ + + Dark blue oval toggle button with light blue internal indicator. + + + + diff --git a/understanding/21/img/button-background.png b/understanding/21/img/button-background.png deleted file mode 100644 index fae07224de225658fa0750e95bf585d3f47b53eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2714 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 TA%56VM-hyzlTD4)#oPY|?=3B2 diff --git a/understanding/21/img/buttons-text-symbols.png b/understanding/21/img/buttons-text-symbols.png deleted file mode 100644 index 31e64531b6f9dda9178a23edf9f9f037a93049dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1553 zcmb7^Yd8}M7{{kbtP!i@oaU0bL>jf_7Hg53rHLJ(Tw-pI``B|1YcrJ5;Y4PIB1Lkr zOde_&xoe5JbaR{gEw?etCFbmWIp6xwhyVL~{vY1wdEXEJ|6dOFXpsC7c>n+a!r0p2 zBrK8$w|}2xp2DV;RMmoR>YXtzjOapFv%SgN&!S)&v08nWDPg3pS z|M&s`GS4wKR!-5Li^Eu3Cy!rc1!!(^H(gs=hRcvf?Fn|&qt08mT=04ltdh(=I4m~? zC5*|k56ZRVJ{iT?*nn1mL`UD^M->hcTJqGRj``ucLjJskEo%awL+TRk-X0UZUu()n z?2_|{yt*jeg*8P@oZir;QTmw!$BJ7C^y@zjO;7-tTx%J#2pUPcC(RU8fH$w9Nez#i9wGN+@X!#~Uqvi4hy;-S>ru~v#RtQ&7W zV7H9+##|iPOOtHbX43B%HvQ=LPc&j|>jDbibnvQ?7GDI329PI7siTJjBlT4lx z2)ar4L%cl9micuCG#V{(nUCyiy9yTyg^`hw_<^_%j(C5GEBd$Xc2*j#r-la&VqM`yyBogiIv`tMvzY~5DtE#DS1%h(QuGoXKu{h_P zh_JMD_vA!trfHx|7VGMer1hm-{bdUa3;3y1ny6UuX%>>S+T#9|w%Z+lhiP)5{(RZ&rqUubBjWm2T4gTqlrN5|)j ze(aKZ7V8S1L(=l`@$tW1mHV+agTXk&?dTw0hZYnRz|GC)Ds3be-}=+eN^hu|h(2y$ zP{?Gy54jWPrtk1osaGtf_74nHyqa`Vvu6ZJ3wjFBU5MSrMaAgOl&K*aq#KXNKdY>C z@_a*uRaI35K(wA41A)Nafq~;lB+_3!%#Hh6oY9>0ySqEZnJ*RVla{RYeI5#hHig^+ zfk3@OLnk&jH~o3?rKP31PqI=5Tfnu46O>+;*9e|&ykdbDuoL6s&+_xFk3b+gFjyz4 z_3Wo4FnZPuw~hofaDYVKJbN~EQ)fCmD|}qrraY{eE$^HJ1}?kCwWn{9^3KM+5U(G5lMU+BJUY^Nujc#8}H?Xi6WX9H%Gb^jB=PEg}WDIj2 ze}4~p#`RJYU70NmdyfhZ3eq+<{#ZkPzy!@SHpXAZVsq~kbEKN$mDHE|k22O*Rw9VH ztto=~eX_ECzP>FSmj-%oN2XC>VPPxf(f;YYtfYar?+E!$1tBmPEZgLpvTI1JU^Kp^ zt?i-K)%97m!mx;lo{XY(inm;GP0hdw{joE9jB=vO;W>I9^;4=v$08momuEJN@E#)( zp$$@fZEcBts|uXY2?^4HK|ydk+wAOYe+<`v2|SkC;Mg?`PgG7#IY&V;9+`$eLsFPR0I>?VdTu zPiu}47|o6`OG@CVs{#K9dYjZ}H_8Kw4Zfg^-fH;oXk@uPP4Jjfq(`c5pEEmO_~OOl zX#_&J#*>CX?v%)GCDcDnbGbVqh|=sQDtqkvY>t5?W_-Y#{RH&WV*%@Y(2`NKQnsYV O0hkN+Hf7dcxBdkXbo#9T diff --git a/understanding/21/img/checkbox-example1.png b/understanding/21/img/checkbox-example1.png deleted file mode 100644 index ea5fdddc061d8e75826429cdbd14dae3e1e16a76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4482 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 diff --git a/understanding/21/img/checkbox-example2.png b/understanding/21/img/checkbox-example2.png deleted file mode 100644 index 3edf1b59cac440ee86898c2b4ee5cf080e40f3bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4821 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 I-ZJ370Az@?WB>pF diff --git a/understanding/21/img/checkbox-example3.png b/understanding/21/img/checkbox-example3.png deleted file mode 100644 index fca587901edb76d74a55c23c800538624f64c51d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4879 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 diff --git a/understanding/21/img/checkbox-example4.png b/understanding/21/img/checkbox-example4.png deleted file mode 100644 index 72b952a9d27fe779484bd5c105d4eb52ad31df2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25451 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 diff --git a/understanding/21/img/checkbox-example5.png b/understanding/21/img/checkbox-example5.png deleted file mode 100644 index fa6465da5e17c3d446ad42b4a615df7d4ef3c1f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3094 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 IRk95E4{Of{(f|Me diff --git a/understanding/21/img/dropdown.png b/understanding/21/img/dropdown.png deleted file mode 100644 index 8c7cf92dda7a3384349457416f1009a0add0a98f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3388 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 diff --git a/understanding/21/img/dropdown2.png b/understanding/21/img/dropdown2.png deleted file mode 100644 index 68446c97d2fbb1fe5526106a9c55970237944dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2648 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 diff --git a/understanding/21/non-text-contrast.html b/understanding/21/non-text-contrast.html index 1f08b68ac0..b70e297bbd 100644 --- a/understanding/21/non-text-contrast.html +++ b/understanding/21/non-text-contrast.html @@ -54,14 +54,16 @@

    Boundaries

    {% include "./img/1.4.11-ntc-minimal-button.svg" %} -
    Pass: A button without a visual boundary, and the same button with a focus indicator that is a defined visual boundary of grey (#949494) adjacent to white.
    +
    + Pass: A button without a visual boundary, and the same button with a focus indicator that is a defined visual boundary of grey (#949494) adjacent to white.

    Adjacent colors

    For user interface components 'adjacent colors' means the colors adjacent to the component. For example, if an input has a white internal background, dark border, and white external background the 'adjacent color' to the component would be the white external background.

    {% include "./img/1.4.11-ntc-text-input-default.svg" %} -
    Pass: A standard text input with a grey border (#767676) and white adjacent color outside the component
    +
    + Pass: A standard text input with a grey border (#767676) and white adjacent color outside the component

    If components use several colors, any color which does not interfere with identifying the component can be ignored for the purpose of measuring contrast ratio. For example, a 3D drop-shadow on an input, or a dark border line between contrasting backgrounds is considered to be subsumed into the color closest in brightness (perceived luminance).

    @@ -70,21 +72,24 @@

    Adjacent colors

    {% include "./img/1.4.11-ntc-text-input-background-border.svg" %} -
    Pass: The contrast of the input background (white) and color adjacent to the control (dark blue #003366) is sufficient. There is also a border (silver) on the component that is not required to contrast with either.
    +
    + Pass: The contrast of the input background (white) and color adjacent to the control (dark blue #003366) is sufficient. There is also a border (silver) on the component that is not required to contrast with either.

    For visual information required to identify a state, such as the check in a checkbox or the thumb of a slider, that part might be within the component so the adjacent color might be another part of the component.

    {% include "./img/1.4.11-ntc-checkbox-purple.svg" %} -
    Pass: A customized checkbox with light grey check (#E5E5E5), which has a contrast ratio of 5.6:1 with the purple box (#6221EA).
    +
    + Pass: A customized checkbox with light grey check (#E5E5E5), which has a contrast ratio of 5.6:1 with the purple box (#6221EA).

    It is possible to use a flat design where the status indicator fills the component and does not contrast with the component, but does contrast with the colors adjacent to the component.

    {% include "./img/1.4.11-ntc-radio-custom.svg" %} -
    Pass: The first radio button shows the default state with a grey (#949494) circle. The second and third show the radio button selected and filled with a color that contrasts with the color adjacent to the component. The last example shows the state indicator contrasting with the component colors.
    +
    + Pass: The first radio button shows the default state with a grey (#949494) circle. The second and third show the radio button selected and filled with a color that contrasts with the color adjacent to the component. The last example shows the state indicator contrasting with the component colors.
    @@ -95,12 +100,14 @@
    {% include "./img/1.4.11-ntc-star-examples-pass.svg" %} -
    Pass: Two examples which pass this success criterion, using either a solid fill to indicate a checked-state that has contrast, or a thicker border as well as yellow fill. +
    + Pass: Two examples which pass this success criterion, using either a solid fill to indicate a checked-state that has contrast, or a thicker border as well as yellow fill.
    {% include "./img/1.4.11-ntc-star-examples-fail.svg" %} -
    Fail: The first example fails the Use of color criterion due to relying on yellow and white hues. The second example fails the Non-text contrast criterion due to the yellow (#FFF000) to white contrast ratio of 1.2:1. +
    + Fail: The first example fails the Use of color criterion due to relying on yellow and white hues. The second example fails the Non-text contrast criterion due to the yellow (#FFF000) to white contrast ratio of 1.2:1.
    @@ -121,14 +128,16 @@
    {% include "./img/1.4.11-ntc-focus-inner.svg" %} -
    Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9). +
    + Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
    {% include "./img/1.4.11-ntc-focus-outer-yellow.svg" %} -
    Fail: The external yellow indicator (#FFFF00) does not contrast with the white background (#FFF) which the component is on. +
    + Fail: The external yellow indicator (#FFFF00) does not contrast with the white background (#FFF) which the component is on.
    @@ -203,75 +212,67 @@

    User Interface Component Examples

    Link text The browser's default link text color is covered by
    1.4.3 Contrast (Minimum). Since the underline is the same color as the text, which must meet at least 3:1 to pass, the default underline will always pass the requirements of Non-text Contrast. - A browser-default styled link, blue with an underline. + {% include "./img/1.4.11-ntc-default-link-text.svg" %} Default focus style Links are required to have a visible focus indicator by 2.4.7 Focus Visible. Where the focus style of the user-agent is not adjusted on interactive controls (such as links, form fields or buttons) by the website (author), the default focus style is exempt from contrast requirements (but must still be visible). - A browser-default styled link, with a solid mid-blue outline around the link. + {% include "./img/1.4.11-ntc-default-link-focus.svg" %} Buttons A button which has a distinguishing indicator such as position, text style, or context does not need a contrasting visual indicator to show that it is a button, although some users are likely to identify a button with an outline that meets contrast requirements more easily. - Button with a faint blue background. + {% include "./img/1.4.11-ntc-button-background.svg" %} Text input (minimal) Where a text-input has a visual indicator to show it is an input, such as a bottom border (#767676), that indicator must meet 3:1 contrast ratio. - - {% include "./img/1.4.11-ntc-text-input-minimal.svg" %} - + {% include "./img/1.4.11-ntc-text-input-minimal.svg" %} Text input Where a text-input has an indicator such as a complete border (#767676), that indicator must meet 3:1 contrast ratio. - - {% include "./img/1.4.11-ntc-text-input-default.svg" %} - + {% include "./img/1.4.11-ntc-text-input-default.svg" %} Text input focus style A focus indicator is required. While in this case the additional gray (#CCC) outline has an insufficient contrast of 1.6:1 against the white (#FFF) background, the cursor/caret which is displayed when the input receives focus does provide a sufficiently strong visual indication. - - {% include "./img/1.4.11-ntc-text-input-focus.svg" %} - + {% include "./img/1.4.11-ntc-text-input-focus.svg" %} Text input using background color Text inputs that have no border and are differentiated only by a background color must have a 3:1 contrast ratio to the adjacent background (#043464). - - {% include "./img/1.4.11-ntc-text-input-background.svg" %} - + {% include "./img/1.4.11-ntc-text-input-background.svg" %} Toggle button The toggle button's internal background (#070CD5) has a good contrast with the external white background. Also, the round toggle within (#7AC2FF) contrasts with the internal background. - Dark blue oval toggle button with light blue internal indicator. + {% include "./img/1.4.11-ntc-toggle.svg" %} Dropdown indicator The down-arrow is required to understand that there is drop-down functionality, it has a contrast of 4.7:1 for the white icon on dark gray (#6E747B). - Button with the word Menu, and a down-arrow icon next to it. + {% include "./img/1.4.11-ntc-dropdown.svg" %} Dropdown indicator The down-arrow is required to understand that there is drop-down functionality, it has a contrast of 21:1 for the black icon on white. - Text with the word Menu, and a down-arrow icon next to it. + {% include "./img/1.4.11-ntc-dropdown2.svg" %} Checkbox - empty A black border on a white background indicates the checkbox. - Black square border with a text label. + {% include "./img/1.4.11-ntc-checkbox-example1.svg" %} Checkbox - checked A black border on a white background indicates the checkbox, the black tick shape indicates the state of checked. - Black square border with a tick inside, and a text label. + {% include "./img/1.4.11-ntc-checkbox-example2.svg" %} Checkbox - Subtle hover style A checkbox is visually identified by its black border against a white background, but when the mouse pointer hovers on the checkbox, a subtle grey background is added (#DEDEDE). The black border has a 15:1 contrast ratio with the grey background, so the checkbox continues to have good contrast. Note that the grey hover effect does not itself need to contrast 3:1 with the page background, since the pointer position is the primary indicator of the hover state. - Checkbox with a black border and a circular grey background next to a text label. + {% include "./img/1.4.11-ntc-checkbox-example4.svg" %} @@ -289,19 +290,17 @@

    User Interface Component Examples

    Colored underline is the only indicator of a link Link and non-link text are both white on an almost-black (#0D0F13) background. The link's custom underline (#B1262B) is the only way to identify the link. The red underline contrasts less than 3:1 with the background color. - White non-link and link text on an almost black background. The link text has a dull-red underline. + {% include "./img/1.4.11-ntc-link-underline-only.svg" %} Checkbox - border color The grey border color of the checkbox (#9D9D9D) has a contrast ratio of 2.7:1 with the white background, which is not sufficient for the visual information required to identify the checkbox. - Grey box on a white background with a black tick in the middle. + {% include "./img/1.4.11-ntc-checkbox-example3.svg" %} Checkbox - subtle focus style A focus indicator is required. If the focus indicator is styled by the author, it must meet the 3:1 contrast ratio with adjacent colors. In this case, the gray (#AAA) indicator has an insufficient ratio of 2.3:1 with the white (#FFF) adjacent background. - - Unchecked checkbox with a thick gray additional outline as focus indication. - + {% include "./img/1.4.11-ntc-checkbox-example5.svg" %} @@ -438,7 +437,7 @@

    Infographics

    Symbolic text characters

    When text characters are used as symbols – used for their visual appearance, rather than expressing something in human language – they fall under the definition of non-text content.

    - A button using an uppercase 'X' and a button with a greater-than character + {% include "./img/1.4.11-ntc-buttons-text-symbols.svg" %}
    Even though the two buttons use text characters — an uppercase X, often used for "Close" buttons, and a > character, to act as a right-pointing arrow — they count as non-text characters/symbols. Their contrast ratio of just above 3:1 passes this success criterion.
    From c0d420911a355f07e8a85a1df98607a8d464d68a Mon Sep 17 00:00:00 2001 From: Adam Page Date: Thu, 25 Sep 2025 17:20:18 -0700 Subject: [PATCH 6/7] replace inactive button asset in 3 Understanding docs --- understanding/20/contrast-enhanced.html | 2 +- understanding/20/contrast-minimum.html | 2 +- .../21/img/1.4.11-ntc-button-inactive.svg | 9 +++++++++ understanding/21/img/inactive-button.png | Bin 3691 -> 0 bytes understanding/21/non-text-contrast.html | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 understanding/21/img/1.4.11-ntc-button-inactive.svg delete mode 100644 understanding/21/img/inactive-button.png diff --git a/understanding/20/contrast-enhanced.html b/understanding/20/contrast-enhanced.html index 91a02c992f..937d9479bb 100644 --- a/understanding/20/contrast-enhanced.html +++ b/understanding/20/contrast-enhanced.html @@ -236,7 +236,7 @@

    Inactive User Interface Components

    User Interface Components that are not available for user interaction (e.g., a disabled control in HTML) are not required to meet contrast requirements. An inactive user interface component is visible but not currently operable. An example would be a submit button at the bottom of a form that is visible but cannot be activated until all the required fields in the form are completed.

    - Grey button with non-contrasting grey text. + {% include "../21/img/1.4.11-ntc-button-inactive.svg" %}
    An inactive button using default browser styles
    diff --git a/understanding/20/contrast-minimum.html b/understanding/20/contrast-minimum.html index 07fdd9ceab..10e1683506 100644 --- a/understanding/20/contrast-minimum.html +++ b/understanding/20/contrast-minimum.html @@ -219,7 +219,7 @@

    Inactive User Interface Components

    User Interface Components that are not available for user interaction (e.g., a disabled control in HTML) are not required to meet contrast requirements. An inactive user interface component is visible but not currently operable. An example would be a submit button at the bottom of a form that is visible but cannot be activated until all the required fields in the form are completed.

    - Grey button with non-contrasting grey text. + {% include "../21/img/1.4.11-ntc-button-inactive.svg" %}
    An inactive button using default browser styles
    diff --git a/understanding/21/img/1.4.11-ntc-button-inactive.svg b/understanding/21/img/1.4.11-ntc-button-inactive.svg new file mode 100644 index 0000000000..deed62ac19 --- /dev/null +++ b/understanding/21/img/1.4.11-ntc-button-inactive.svg @@ -0,0 +1,9 @@ + + Grey button with non-contrasting grey text. + + + + + Submit Query + + diff --git a/understanding/21/img/inactive-button.png b/understanding/21/img/inactive-button.png deleted file mode 100644 index 49beef31613673d3d851e0bbd35a9ef402b425d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3691 zcmdUyX*e6o8pqS4C=L!`vieBSi3B|NFsVt|$)x1m)r37v$w1>|}k0J%xYC)KK3l+-dWLqvfRm z>Eux{1^!cK&v1(gzP>1tDm7+uak)l&dEAcSoEY(-%`xB$gf2u7hHa8Hp(eE5ewR6w&_% z4qMFl1UX?5!5{6e5{5{pZZ)$y#d)YLjq=J}T`91ltlYdpzG&F29+}%WgPl8>6dAQL z{&e!Xr(xY}p=0#=9&4S|lAGa>hq?-!2`1CgB3b61^0w8LK|k!bVt%D>lQy5>G-mUX zLt#6ntVC^RMLZB22_Z&Qs4YLoMHA4UW4)m7ULL0y(@ZMno(*vu1WCw)LfWIW7NHUr z!4A7iq5PCSIoCr`<~KXt)~GCj=w{AfHMrk`=^_H`SDoO|=^66xBUoE@ zRNT6%dL=@E;`LPo1KeFNIKo)NzE*{_sy%F8K))P$-t)8`TwpGSMf̝s}wN6POg zL+?B&%nU9MI5I6sFMV9}mn(I*)p|-LuKcWo3`MEIZa%LxEN_W81VtT4ccbQO{bj;Y z+oA^g)D3Afg2bff=D>KV7^>wh3s>E#vnk$0g5}_f8AjqaW>Ys7R5iSoZ=%nJ`Dfyg z?;m{Sp1-T4c`|Bd64~Lg2-!quPZ6h3fo7Bp)<EA>0|!DY*vDwLyF6Z8$c)m;kKxAh=29P&b;A5XC`Q%z-=?kV{{$(XxOJ1W-(=S2s7JE$?>GFFZaG@E zqfj{HYjV{`JJ)GtSJC?{EM7uHYUXC!lk-2m6yrA94*#|riHS;`b!oxaKa81fvV$P1 z-53x@-ZFi&Y#Kt!*gQ==#?N`H&||>MQLIO%kN~X0M#nnH{hY{zP1!D3ET=^f&Os3t zzdJ@(I5TbAns7(382_^*4w$GmXW%vruirlRq`26@A~$f59BG43Wd_YaC7cAQCRC*0 zlhh(%j5DS2o9fUVSC<9tc6xmj^6QjA*SLo(@7YyPR-^jPV)mZToj)N} zqLQ<>f$?fU_${x3q_oAb*)3)iBibR=>nf24>v_f99;`*fRZjn8_CjjS@5LhvS>mjj_`uy>Dpvez1b?H&d}!>&~K6X1Rm z^@d;}nN%h;A0QH7)9Mje7weT>WnJ)sBj{bwmBZO~j7%hJ?Y;JQd;#~0eQ#0%)+ufH zMSr_DA@K-AvU4sd6Nf)_txBi85!4uEW>Y9e1Ce>xSD-M$!%| z^;1*h?|l20iR+I9cgk!x8T{9t7WR8gsnO7Jr2S7{nMqr)jenAOe88<9R39BN@r^!3 zw=;LWaHc(HqV^%vNrv)a5AIi)Y0aEt;gz>zxAEm0QO@q~+omyS=X6bLg1wjYUV|`3 zpW|n)yTx7mdz9gRp!b$ z^tnn$ZUZy2>h5XTYd_=7uYhu$#cvSl$xJv$-3=z$DU>z^lmq2W zH43MLIpc5|Ek>>vNIFooi|k(e^dA@?&v89839GxRrWr0G`3y<#95L)houdt>7}{j$ zF`X7a;wB2euW!GfV+T%}>w2BrI*7(UM9|P#C$r1L&+9Djmfpkb@(ksk-{Rvf2L0pN zfTJI$B3&4xzf8QY6K(NP2*V&=?x#+FTdxbH;;i&8zH6v^I*<@#S?fdmD#0HVH!bhl zD!h+-T5C63ixc)laJ>}J!1$HqVWb^sZZ$}-;RrK^JQrqrY{ zk}vO2XK;Q>MC8zgT7F{a%^?vM>zziOXB7+J@GE=dhJgK|%RPt`)B32T<`QV%zMLVX z6?i;<4!8z%GU!HaR2EzdXOsYCN=2)#hNEKD>QXC|$yfa~{I4kK?)_aenMk4U!e4fL zno!2UTrWJl^Z?JW7O!?xkZTX~lgU565x6hEe#ypc+Ln?^6pU=tC?%5b9%y=@TW5>EvhD%yrHOCjw}GFm4uTD-26Xs} zsxBImXc<;)`+C^uV= zU7yI7F=|6XV8dJvM2hhhm9=a;9C6r>>T?TC*UqYH{L#3?DncV>3v!mI8)+eLyWx&U zrJ4L<`L+L2cUpcQZSVfv!*S?b1efmHV;}rl19`xzJVd<4V^mjQ6ctk5{6zFhAMSU( zZa4JXGKeX{V!wP^N{8I!QhC+*M#ly46d`Z-!Z5aK;KPLWYrX*mT-?_m9{#bOCq^~8 zuTLO*^!Zwxl|V@`qTs#1ttdv8Dd=03=(B#OT6~+ZvV>k*t$?T>NKKTJGNTb|nxAOW zDFL6wBUcBpM6XYmd(<>q@ZE1jL4Ue>lh+5FdpI>N!v{U$1p~#a3k_z9eM;UcOz*$q z;}B%X7xg6H8jgDQrQ20YApRuNq4oCg$i1mB7QU_iO)hv5jWJuKU;DGg4GznnRDqq)*H`IX4Ibn9#sc?*{e0N{&s`*Z z)p(zPP2#Xf+!^{X|31kI`1)~CELz>MRF&X*Es#BKLm*H12Nr+txCx54j6`m``T4SU z6;l2W%pKqi4d>1-X7%Gv10D$_$O9g6{=c9TX?P+ScD*r?>t}%i`!5JEHL@_QHE@ah EH&jUdHvj+t diff --git a/understanding/21/non-text-contrast.html b/understanding/21/non-text-contrast.html index b70e297bbd..8f1bba94d1 100644 --- a/understanding/21/non-text-contrast.html +++ b/understanding/21/non-text-contrast.html @@ -310,7 +310,7 @@

    Inactive User Interface Components

    User Interface Components that are not available for user interaction (e.g., a disabled control in HTML) are not required to meet contrast requirements. An inactive user interface component is visible but not currently operable. An example would be a submit button at the bottom of a form that is visible but cannot be activated until all the required fields in the form are completed.

    - Grey button with non-contrasting grey text. + {% include "./img/1.4.11-ntc-button-inactive.svg" %}
    An inactive button using default browser styles

    Inactive components, such as disabled controls in HTML, are not available for user interaction. The decision to exempt inactive controls from the contrast requirements was based on a number of considerations. Although it would be beneficial to some people to discern inactive controls, a one-size-fits-all solution has been very difficult to establish. A method of varying the presentation of disabled controls, such as adding an icon for disabled controls, based on user preferences is anticipated as an advancement in the future.

    From 1fa4558d50b4306597f4faf240c08d0bff5e5b50 Mon Sep 17 00:00:00 2001 From: Adam Page Date: Tue, 30 Sep 2025 10:25:57 -0700 Subject: [PATCH 7/7] add max-inline-size rule to avoid worsening Reflow issue --- css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/base.css b/css/base.css index 90e64332ac..54540d936b 100644 --- a/css/base.css +++ b/css/base.css @@ -444,6 +444,7 @@ figure svg { border: 1px solid var(--line-grey); } +main table svg[role*="image"], figure svg[role*="image"] { display: block; max-inline-size: 100%;