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.
-
+ {% 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 41bdb0382d..51e92e7551 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.
-
+ {% 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-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 @@
+
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 @@
+
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 @@
+
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 @@
+
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 @@
+
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 @@
+
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 @@
+
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 @@
+
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..c02aae8309
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-checkbox-purple.svg
@@ -0,0 +1,6 @@
+
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 @@
+
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 @@
+
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 @@
+
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 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-background.svg b/understanding/21/img/1.4.11-ntc-focus-background.svg
new file mode 100644
index 0000000000..f07b8f20cf
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-background.svg
@@ -0,0 +1,16 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-border.svg b/understanding/21/img/1.4.11-ntc-focus-border.svg
new file mode 100644
index 0000000000..3a9cb9cbd5
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-border.svg
@@ -0,0 +1,17 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-inner-border.svg b/understanding/21/img/1.4.11-ntc-focus-inner-border.svg
new file mode 100644
index 0000000000..bb93e737a6
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-inner-border.svg
@@ -0,0 +1,20 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-inner-outer.svg b/understanding/21/img/1.4.11-ntc-focus-inner-outer.svg
new file mode 100644
index 0000000000..bad9972845
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-inner-outer.svg
@@ -0,0 +1,20 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-inner-white.svg b/understanding/21/img/1.4.11-ntc-focus-inner-white.svg
new file mode 100644
index 0000000000..c57656f5df
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-inner-white.svg
@@ -0,0 +1,20 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-inner.svg b/understanding/21/img/1.4.11-ntc-focus-inner.svg
new file mode 100644
index 0000000000..deea21237a
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-inner.svg
@@ -0,0 +1,20 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-outer-green.svg b/understanding/21/img/1.4.11-ntc-focus-outer-green.svg
new file mode 100644
index 0000000000..8266993e66
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-outer-green.svg
@@ -0,0 +1,17 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-focus-outer-yellow.svg b/understanding/21/img/1.4.11-ntc-focus-outer-yellow.svg
new file mode 100644
index 0000000000..d64c7a3dc4
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-focus-outer-yellow.svg
@@ -0,0 +1,20 @@
+
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 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-minimal-button.svg b/understanding/21/img/1.4.11-ntc-minimal-button.svg
new file mode 100644
index 0000000000..1ba6c50ac7
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-minimal-button.svg
@@ -0,0 +1,11 @@
+
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 @@
+
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 @@
+
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 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-text-input-background-border.svg b/understanding/21/img/1.4.11-ntc-text-input-background-border.svg
new file mode 100644
index 0000000000..26e3550335
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-text-input-background-border.svg
@@ -0,0 +1,9 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-text-input-background.svg b/understanding/21/img/1.4.11-ntc-text-input-background.svg
new file mode 100644
index 0000000000..e6873f7bd8
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-text-input-background.svg
@@ -0,0 +1,8 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-text-input-default.svg b/understanding/21/img/1.4.11-ntc-text-input-default.svg
new file mode 100644
index 0000000000..82ea0232c7
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-text-input-default.svg
@@ -0,0 +1,8 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-text-input-focus.svg b/understanding/21/img/1.4.11-ntc-text-input-focus.svg
new file mode 100644
index 0000000000..2bf292f478
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-text-input-focus.svg
@@ -0,0 +1,10 @@
+
diff --git a/understanding/21/img/1.4.11-ntc-text-input-minimal.svg b/understanding/21/img/1.4.11-ntc-text-input-minimal.svg
new file mode 100644
index 0000000000..ee195aef83
--- /dev/null
+++ b/understanding/21/img/1.4.11-ntc-text-input-minimal.svg
@@ -0,0 +1,12 @@
+
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 @@
+
diff --git a/understanding/21/img/button-background.png b/understanding/21/img/button-background.png
deleted file mode 100644
index fae07224de..0000000000
Binary files a/understanding/21/img/button-background.png and /dev/null differ
diff --git a/understanding/21/img/buttons-text-symbols.png b/understanding/21/img/buttons-text-symbols.png
deleted file mode 100644
index 31e64531b6..0000000000
Binary files a/understanding/21/img/buttons-text-symbols.png and /dev/null differ
diff --git a/understanding/21/img/checkbox-example1.png b/understanding/21/img/checkbox-example1.png
deleted file mode 100644
index ea5fdddc06..0000000000
Binary files a/understanding/21/img/checkbox-example1.png and /dev/null differ
diff --git a/understanding/21/img/checkbox-example2.png b/understanding/21/img/checkbox-example2.png
deleted file mode 100644
index 3edf1b59ca..0000000000
Binary files a/understanding/21/img/checkbox-example2.png and /dev/null differ
diff --git a/understanding/21/img/checkbox-example3.png b/understanding/21/img/checkbox-example3.png
deleted file mode 100644
index fca587901e..0000000000
Binary files a/understanding/21/img/checkbox-example3.png and /dev/null differ
diff --git a/understanding/21/img/checkbox-example4.png b/understanding/21/img/checkbox-example4.png
deleted file mode 100644
index 72b952a9d2..0000000000
Binary files a/understanding/21/img/checkbox-example4.png and /dev/null differ
diff --git a/understanding/21/img/checkbox-example5.png b/understanding/21/img/checkbox-example5.png
deleted file mode 100644
index fa6465da5e..0000000000
Binary files a/understanding/21/img/checkbox-example5.png and /dev/null differ
diff --git a/understanding/21/img/dropdown.png b/understanding/21/img/dropdown.png
deleted file mode 100644
index 8c7cf92dda..0000000000
Binary files a/understanding/21/img/dropdown.png and /dev/null differ
diff --git a/understanding/21/img/dropdown2.png b/understanding/21/img/dropdown2.png
deleted file mode 100644
index 68446c97d2..0000000000
Binary files a/understanding/21/img/dropdown2.png and /dev/null differ
diff --git a/understanding/21/img/inactive-button.png b/understanding/21/img/inactive-button.png
deleted file mode 100644
index 49beef3161..0000000000
Binary files a/understanding/21/img/inactive-button.png and /dev/null differ
diff --git a/understanding/21/img/link-text-default.png b/understanding/21/img/link-text-default.png
deleted file mode 100644
index 7ff267e320..0000000000
Binary files a/understanding/21/img/link-text-default.png and /dev/null differ
diff --git a/understanding/21/img/minimal-button.png b/understanding/21/img/minimal-button.png
deleted file mode 100644
index c21c3d4470..0000000000
Binary files a/understanding/21/img/minimal-button.png and /dev/null differ
diff --git a/understanding/21/img/ntc-default-link-focus.png b/understanding/21/img/ntc-default-link-focus.png
deleted file mode 100644
index 9127ed4f72..0000000000
Binary files a/understanding/21/img/ntc-default-link-focus.png and /dev/null differ
diff --git a/understanding/21/img/ntc-focus-background.png b/understanding/21/img/ntc-focus-background.png
deleted file mode 100644
index 32b480ebc2..0000000000
Binary files a/understanding/21/img/ntc-focus-background.png and /dev/null differ
diff --git a/understanding/21/img/ntc-focus-border.png b/understanding/21/img/ntc-focus-border.png
deleted file mode 100644
index dc374b654a..0000000000
Binary files a/understanding/21/img/ntc-focus-border.png and /dev/null differ
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 5d564ffce7..0000000000
Binary files a/understanding/21/img/ntc-focus-inner-border.png and /dev/null differ
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 cfc69d0af8..0000000000
Binary files a/understanding/21/img/ntc-focus-inner-outer.png and /dev/null differ
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 9ca6d0ed5b..0000000000
Binary files a/understanding/21/img/ntc-focus-inner-white.png and /dev/null differ
diff --git a/understanding/21/img/ntc-focus-inner.png b/understanding/21/img/ntc-focus-inner.png
deleted file mode 100644
index 8d633ded9d..0000000000
Binary files a/understanding/21/img/ntc-focus-inner.png and /dev/null differ
diff --git a/understanding/21/img/ntc-focus-outer-green.png b/understanding/21/img/ntc-focus-outer-green.png
deleted file mode 100644
index e6d64cdfe7..0000000000
Binary files a/understanding/21/img/ntc-focus-outer-green.png and /dev/null differ
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 b8266cac0f..0000000000
Binary files a/understanding/21/img/ntc-focus-outer-yellow.png and /dev/null differ
diff --git a/understanding/21/img/ntc-link-underline-only.png b/understanding/21/img/ntc-link-underline-only.png
deleted file mode 100644
index 9aa9d0180d..0000000000
Binary files a/understanding/21/img/ntc-link-underline-only.png and /dev/null differ
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 45051d8478..0000000000
Binary files a/understanding/21/img/text-input-background-border.png and /dev/null differ
diff --git a/understanding/21/img/text-input-background.png b/understanding/21/img/text-input-background.png
deleted file mode 100644
index 8776771426..0000000000
Binary files a/understanding/21/img/text-input-background.png and /dev/null differ
diff --git a/understanding/21/img/text-input-default.png b/understanding/21/img/text-input-default.png
deleted file mode 100644
index 033604eeda..0000000000
Binary files a/understanding/21/img/text-input-default.png and /dev/null differ
diff --git a/understanding/21/img/text-input-focus.png b/understanding/21/img/text-input-focus.png
deleted file mode 100644
index 51e41fb881..0000000000
Binary files a/understanding/21/img/text-input-focus.png and /dev/null differ
diff --git a/understanding/21/img/text-input-minimal.png b/understanding/21/img/text-input-minimal.png
deleted file mode 100644
index 5fff64b394..0000000000
Binary files a/understanding/21/img/text-input-minimal.png and /dev/null differ
diff --git a/understanding/21/img/toggle.png b/understanding/21/img/toggle.png
deleted file mode 100644
index d3a825e015..0000000000
Binary files a/understanding/21/img/toggle.png and /dev/null differ
diff --git a/understanding/21/non-text-contrast.html b/understanding/21/non-text-contrast.html
index 0261386bdb..534c9e77f8 100644
--- a/understanding/21/non-text-contrast.html
+++ b/understanding/21/non-text-contrast.html
@@ -53,15 +53,17 @@
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.
-
- 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 "./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.
-
- Pass: A standard text input with a grey border (#767676) and white adjacent color outside the component
+ {% 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
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).
@@ -69,22 +71,25 @@
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.
-
- 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.
+ {% 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.
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.
-
- Pass: A customized checkbox with light grey check (#E5E5E5), which has a contrast ratio of 5.6:1 with the purple box (#6221EA).
+ {% 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.
-
- 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.
+ {% 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.
Relationship with Use of Color
@@ -94,13 +99,15 @@
Relationship with Use of Color
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.
-
- 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-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.
-
- 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.
+ {% 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.
@@ -120,20 +127,22 @@
Relationship with Focus Visible
-
- Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
+ {% include "./img/1.4.11-ntc-focus-inner.svg" %}
+
+ Pass: The internal yellow indicator (#FFFF00) contrasts with the blue button background (#4189B9).
-
- Fail: The external yellow indicator (#FFFF00) does not contrast with the white background (#FFF) which the component is on.
+ {% 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 "./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 +151,7 @@
Relationship with Focus Visible
If an indicator is partly inside and partly outside the component, either part of the indicator could provide contrast.
-
+ {% 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 +160,21 @@
Relationship with Focus Visible
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 "./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 "./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 "./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 +183,7 @@
Relationship with Focus Visible
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 "./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.
@@ -183,7 +192,7 @@
Relationship with Focus Visible
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.
@@ -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.
-
+
{% 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).
-
+
{% 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.
-
+
{% 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" %}
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" %}
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" %}
-
+
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" %}
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.
-
+
{% 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).
-
+
{% 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.
-
+
{% include "./img/1.4.11-ntc-dropdown2.svg" %}
Checkbox - empty
A black border on a white background indicates the checkbox.
-
+
{% 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.
-
+
{% 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.
-
+
{% 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.
-
+
{% 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.
-
+
{% 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.
-
-
-
+
{% include "./img/1.4.11-ntc-checkbox-example5.svg" %}
@@ -311,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.
-
+ {% 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.
@@ -412,7 +411,7 @@
Dynamic Examples
-
+ A dynamic chart where the current 'slice' is hovered or focused, which activates the associated text display of the values and highlights the series
@@ -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.
-
+ {% 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.
@@ -450,7 +449,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.
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.