From f89d5d30dc801d0393d048b5d9b774d68e821804 Mon Sep 17 00:00:00 2001 From: HelenBurge <41951878+HelenBurge@users.noreply.github.com> Date: Mon, 13 Jul 2026 12:15:21 +0100 Subject: [PATCH 1/7] Create content-present-reflow-sc9kkf First draft of the content reflow test --- _rules/content-present-reflow-sc9kkf | 283 +++++++++++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 _rules/content-present-reflow-sc9kkf diff --git a/_rules/content-present-reflow-sc9kkf b/_rules/content-present-reflow-sc9kkf new file mode 100644 index 0000000000..dc07c23473 --- /dev/null +++ b/_rules/content-present-reflow-sc9kkf @@ -0,0 +1,283 @@ +--- +id: sc9kkf +name: Content is not missing at 320 CSS pixels +rules_format: 1.1 +rule_type: atomic +description: | + This rule checks content is not missing when the viewport is set to 320 CSS pixels in the orientation of the text. +accessibility_requirements: + wcag21:1.4.10: # Reflow (AA) + forConformance: true + failed: not satisfied + passed: further testing needed + inapplicable: further testing needed +input_aspects: + - DOM Tree + - CSS Styling +acknowledgments: + authors: + - Helen Burge +--- + +## Applicability + +This rule applies to any element containing visible content or functional components. It is rendered when the viewport is set to 320 CSS pixels in the orientation of the text. + +## Expectation (1) + +Each target element: +Retains all content and functionality when viewed at 320 CSS pixels; and +Does not hide, remove, or make content unavailable as a result of viewport constraints, zoom, or responsive behaviour; and +Ensures that any content that is visually hidden at this viewport size is still programmatically available and accessible to users. + +## Background + +This rule supports WCAG 2.1 Success Criterion 1.4.10 Reflow, which requires that content be presented without loss of information or functionality at a width equivalent to 320 CSS pixels. When content is missing at smaller viewport sizes, users may lose access to essential information or controls, even if the layout appears functional. Responsive design should reposition or adapt content, not remove it entirely, unless an equivalent mechanism provides access. + +### Assumptions + +There are no assumptions. + +### Accessibility Support + +There are no accessibility support issues known. + +## Examples + +### Passed + +#### Passed Example 1 + +Content reflows but remains fully available. + +```html +
+ All text content remains visible and accessible when the viewport is reduced. +
++ Additional instructions available to screen reader users. +
+``` + +#### Passed Example 4 + +Content is moved in the layout but still present. + +```html + + +``` + +#### Passed Example 5 + +Accordion reveals content without removing it. + +```html + +Additional content remains available when expanded.
+
+```
+
+#### Passed Example 7
+
+Form fields collapse but remain accessible.
+
+```html
+
+```
+
+#### Passed Example 8
+
+Content requiring two-dimensional layout (covered under reflow exceptions).
+
+```html
+| Column | Column |
|---|
+```
+
+#### Failed Example 7
+
+Collapsed content has no mechanism to access it.
+
+```html
+
+```
+
+### Inapplicable
+
+#### Inapplicable Example 1
+
+Decorative content.
+
+```html
+Short summary version
+Full detailed version
+``` From 7aa38a5a3c51cd2489040b962f448709694495c4 Mon Sep 17 00:00:00 2001 From: HelenBurge <41951878+HelenBurge@users.noreply.github.com> Date: Mon, 13 Jul 2026 14:12:14 +0100 Subject: [PATCH 2/7] Update content-present-reflow-sc9kkf --- _rules/content-present-reflow-sc9kkf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_rules/content-present-reflow-sc9kkf b/_rules/content-present-reflow-sc9kkf index dc07c23473..9bb4e0fca0 100644 --- a/_rules/content-present-reflow-sc9kkf +++ b/_rules/content-present-reflow-sc9kkf @@ -17,6 +17,8 @@ input_aspects: acknowledgments: authors: - Helen Burge + previous_authors: + - --- ## Applicability From dd72c255f8b5f2b311ec589beeb8d974a065be4c Mon Sep 17 00:00:00 2001 From: HelenBurge <41951878+HelenBurge@users.noreply.github.com> Date: Mon, 13 Jul 2026 14:21:21 +0100 Subject: [PATCH 3/7] Update content-present-reflow-sc9kkf --- _rules/content-present-reflow-sc9kkf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_rules/content-present-reflow-sc9kkf b/_rules/content-present-reflow-sc9kkf index 9bb4e0fca0..5f0d9ea131 100644 --- a/_rules/content-present-reflow-sc9kkf +++ b/_rules/content-present-reflow-sc9kkf @@ -29,8 +29,8 @@ This rule applies to any element containing visible content or functional compon Each target element: Retains all content and functionality when viewed at 320 CSS pixels; and -Does not hide, remove, or make content unavailable as a result of viewport constraints, zoom, or responsive behaviour; and -Ensures that any content that is visually hidden at this viewport size is still programmatically available and accessible to users. +- Does not hide, remove, or make content unavailable as a result of viewport constraints, zoom, or responsive behaviour; and +- Ensures that any content that is visually hidden at this viewport size is still programmatically available and accessible to users. ## Background From c59515145b533078f960054fb530bda030acc8ba Mon Sep 17 00:00:00 2001 From: HelenBurge <41951878+HelenBurge@users.noreply.github.com> Date: Mon, 13 Jul 2026 14:36:18 +0100 Subject: [PATCH 4/7] Create orientation-scroll-reflow-acsmtl --- orientation-scroll-reflow-acsmtl | 267 +++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 orientation-scroll-reflow-acsmtl diff --git a/orientation-scroll-reflow-acsmtl b/orientation-scroll-reflow-acsmtl new file mode 100644 index 0000000000..68986a8c39 --- /dev/null +++ b/orientation-scroll-reflow-acsmtl @@ -0,0 +1,267 @@ +--- +id: acsmtl +name: Orientation scrolls do not exist at 320 CSS pixels without a content exception +rules_format: 1.1 +rule_type: atomic +description: | + This rule checks content does not require a scroll in the orientation of the text when the viewport is set to 320 CSS pixels. +accessibility_requirements: + wcag21:1.4.10: # Reflow (AA) + forConformance: true + failed: not satisfied + passed: further testing needed + inapplicable: further testing needed +input_aspects: + - DOM Tree + - CSS Styling +acknowledgments: + authors: + - Helen Burge + previous_authors: + - +--- + +## Applicability + +This rule applies to any element containing visible content that is rendered when the viewport is set to 320 CSS pixels in the orientation of the text. The user can scroll in the orientation of the text (for example, horizontal scrolling in left-to-right text). + +## Expectation (1) + +Each target element: +- Does not require scrolling in the direction of reading to access content when viewed at 320 CSS pixels; or +- Scrolls only where the content meets a valid exception, where a two-dimensional layout is required for meaning or functionality. + +## Background + +This rule supports WCAG 2.1 Success Criterion 1.4.10 Reflow, which requires that content can be presented without loss of information or functionality and without requiring scrolling in two dimensions at a width equivalent to 320 CSS pixels. For horizontally written languages, users should be able to scroll vertically only, without needing horizontal scrolling to read text. Exceptions exist for content that inherently requires a two-dimensional layout, such as maps, data tables, or code blocks. + +### Assumptions + +There are no assumptions. + +### Accessibility Support + +There are no accessibility support issues known. + +## Examples + +### Passed + +#### Passed Example 1 + +Text content reflows and only vertical scrolling is required. + +```html ++ This paragraph wraps correctly within the viewport and can be read + using vertical scrolling only. +
++ All content reflows into a single column. +
+| Name | Value |
|---|---|
| Example | Data |
+ ThisIsAnExtremelyLongWordThatWrapsCorrectlyInsteadOfForcingScrolling. +
+``` + +#### Passed Example 7 + +Large data table requiring two-dimensional layout. + +```html +| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Data | Data | Data |
+ This paragraph does not wrap and requires horizontal scrolling. +
++ ThisTextDoesNotWrapAndForcesTheUserToScrollHorizontallyToRead. +
+``` + +#### Failed Example 3 + +Overflow causes horizontal scroll in reading direction. + +```html ++ Users must scroll horizontally to read this text. +
++ This text is خارج the viewport and requires horizontal scrolling. +
++ This content requires both horizontal and vertical scrolling. +
++ The paragraph itself requires horizontal scrolling to read. +
+
+function example() {
+ console.log("This line may require horizontal scrolling");
+}
+
+```
From 0a6d52277ff296f7fabc8d74381b510c8aa64696 Mon Sep 17 00:00:00 2001
From: HelenBurge <41951878+HelenBurge@users.noreply.github.com>
Date: Mon, 13 Jul 2026 14:39:12 +0100
Subject: [PATCH 5/7] Create orientation-scroll-reflow-acsmtl
---
_rules/orientation-scroll-reflow-acsmtl | 267 ++++++++++++++++++++++++
1 file changed, 267 insertions(+)
create mode 100644 _rules/orientation-scroll-reflow-acsmtl
diff --git a/_rules/orientation-scroll-reflow-acsmtl b/_rules/orientation-scroll-reflow-acsmtl
new file mode 100644
index 0000000000..68986a8c39
--- /dev/null
+++ b/_rules/orientation-scroll-reflow-acsmtl
@@ -0,0 +1,267 @@
+---
+id: acsmtl
+name: Orientation scrolls do not exist at 320 CSS pixels without a content exception
+rules_format: 1.1
+rule_type: atomic
+description: |
+ This rule checks content does not require a scroll in the orientation of the text when the viewport is set to 320 CSS pixels.
+accessibility_requirements:
+ wcag21:1.4.10: # Reflow (AA)
+ forConformance: true
+ failed: not satisfied
+ passed: further testing needed
+ inapplicable: further testing needed
+input_aspects:
+ - DOM Tree
+ - CSS Styling
+acknowledgments:
+ authors:
+ - Helen Burge
+ previous_authors:
+ -
+---
+
+## Applicability
+
+This rule applies to any element containing visible content that is rendered when the viewport is set to 320 CSS pixels in the orientation of the text. The user can scroll in the orientation of the text (for example, horizontal scrolling in left-to-right text).
+
+## Expectation (1)
+
+Each target element:
+- Does not require scrolling in the direction of reading to access content when viewed at 320 CSS pixels; or
+- Scrolls only where the content meets a valid exception, where a two-dimensional layout is required for meaning or functionality.
+
+## Background
+
+This rule supports WCAG 2.1 Success Criterion 1.4.10 Reflow, which requires that content can be presented without loss of information or functionality and without requiring scrolling in two dimensions at a width equivalent to 320 CSS pixels. For horizontally written languages, users should be able to scroll vertically only, without needing horizontal scrolling to read text. Exceptions exist for content that inherently requires a two-dimensional layout, such as maps, data tables, or code blocks.
+
+### Assumptions
+
+There are no assumptions.
+
+### Accessibility Support
+
+There are no accessibility support issues known.
+
+## Examples
+
+### Passed
+
+#### Passed Example 1
+
+Text content reflows and only vertical scrolling is required.
+
+```html
++ This paragraph wraps correctly within the viewport and can be read + using vertical scrolling only. +
++ All content reflows into a single column. +
+| Name | Value |
|---|---|
| Example | Data |
+ ThisIsAnExtremelyLongWordThatWrapsCorrectlyInsteadOfForcingScrolling. +
+``` + +#### Passed Example 7 + +Large data table requiring two-dimensional layout. + +```html +| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Data | Data | Data |
+ This paragraph does not wrap and requires horizontal scrolling. +
++ ThisTextDoesNotWrapAndForcesTheUserToScrollHorizontallyToRead. +
+``` + +#### Failed Example 3 + +Overflow causes horizontal scroll in reading direction. + +```html ++ Users must scroll horizontally to read this text. +
++ This text is خارج the viewport and requires horizontal scrolling. +
++ This content requires both horizontal and vertical scrolling. +
++ The paragraph itself requires horizontal scrolling to read. +
+
+function example() {
+ console.log("This line may require horizontal scrolling");
+}
+
+```
From 416667896f51ff7aceea1bdb7ee3fbbe59014719 Mon Sep 17 00:00:00 2001
From: HelenBurge <41951878+HelenBurge@users.noreply.github.com>
Date: Mon, 13 Jul 2026 14:57:44 +0100
Subject: [PATCH 6/7] Create text-cutoff-reflow-lf4ym8
---
_rules/text-cutoff-reflow-lf4ym8 | 339 +++++++++++++++++++++++++++++++
1 file changed, 339 insertions(+)
create mode 100644 _rules/text-cutoff-reflow-lf4ym8
diff --git a/_rules/text-cutoff-reflow-lf4ym8 b/_rules/text-cutoff-reflow-lf4ym8
new file mode 100644
index 0000000000..b93a8be223
--- /dev/null
+++ b/_rules/text-cutoff-reflow-lf4ym8
@@ -0,0 +1,339 @@
+---
+id: lf4ym8
+name: Text is not cutoff at 320 CSS pixels
+rules_format: 1.1
+rule_type: atomic
+description: |
+ This rule checks content does not require a scroll in the orientation of the text when the viewport is set to 320 CSS pixels.
+accessibility_requirements:
+ wcag21:1.4.10: # Reflow (AA)
+ forConformance: true
+ failed: not satisfied
+ passed: further testing needed
+ inapplicable: further testing needed
+input_aspects:
+ - DOM Tree
+ - CSS Styling
+acknowledgments:
+ authors:
+ - Helen Burge
+ previous_authors:
+ -
+---
+
+## Applicability
+
+This rule applies to any element containing visible text that is rendered at 320 CSS pixels in the orientation of the text.
+
+## Expectation (1)
+
+Each target element:
+- Has all text fully visible within the viewport, without being clipped, truncated, or hidden off-screen when viewed at 320 CSS pixels; and
+- Does not require scrolling in the direction of reading to reveal portions of text; and
+- Preserves all information and functionality associated with the text content.
+
+## Background
+
+This rule supports WCAG 2.1 Success Criterion 1.4.10 Reflow, which requires that content can be presented without loss of information or functionality and without requiring scrolling in two dimensions at a width equivalent to 320 CSS pixels.
+
+### Assumptions
+
+There are no assumptions.
+
+### Accessibility Support
+
+There are no accessibility support issues known.
+
+## Examples
+
+### Passed
+
+#### Passed Example 1
+
+Text wraps correctly and remains fully visible at 320 CSS pixels.
+
+```html
++ This paragraph reflows and wraps within the viewport, + ensuring all text is visible without horizontal scrolling. +
++ Content adapts to the viewport and remains fully readable at 320 CSS pixels. +
++ ThisIsAnExtremelyLongWordThatWouldOtherwiseOverflowButNowWrapsCorrectlyWithinTheViewport. +
+``` + +#### Passed Example 4 + +Content inside a flexible grid reflows to a single column. + +```html + +All text remains visible and reflows correctly.
++ This is a sentence with inline elements that wrap correctly + when the viewport is reduced. +
+``` + +#### Passed Example 6 + +Scrollable container used only for non-text, while text remains fully visible. + +```html ++ The text content is fully visible and not clipped, even though other + components on the page may scroll. +
+
+const veryLongVariableName = "example";
+
+
+```
+
+#### Passed Example 11
+
+Whiteboard or drawing canvas. User-generated spatial content cannot be meaningfully reflowed.
+
+```html
+
+```
+
+### Failed
+
+#### Failed Example 1
+
+Text is cut off due to a fixed-width container.
+
+```html
+
+```
+
+#### Failed Example 2
+
+Text is truncated and not fully readable.
+
+```html
+
+```
+
+#### Failed Example 3
+
+Overflow causes text to extend outside the viewport.
+
+```html
++ This text spills خارج the viewport and requires horizontal scrolling to read fully. +
++ Part of this text is pushed خارج the viewport and not visible. +
++ SupercalifragilisticexpialidociousSupercalifragilisticexpialidocious +
+``` + +#### Failed Example 6 + +Clipping hides text content. + +```html + +``` + +#### Failed Example 7 + +Text overlaps and hides other text when reflowing. + +```html +First line of text
+Second line overlaps and obscures the first
++ This text requires horizontal scrolling to read fully, which fails the requirement. +
+
+function example() {
+ console.log("Horizontal scrolling may be required");
+}
+
+```
+
+#### Inapplicable Example 2
+
+Element does not present visible text to the user.
+
+```html
+
+```
+
+#### Inapplicable Example 3
+
+Mathematical formula requiring spatial layout. The meaning depends on spatial formatting that may not fully reflow without loss of meaning.
+
+```html
+
+```
+
+#### Inapplicable Example 5
+
+Large chart or graph. Charts require spatial relationships that cannot be preserved through text reflow.
+
+```html
+
+```
+
+#### Inapplicable Example 6
+
+Side-by-side comparison layout where structure conveys meaning. The meaning relies on a two-dimensional comparison layout.
+
+```html
+- This paragraph wraps correctly within the viewport and can be read - using vertical scrolling only. -
-- All content reflows into a single column. -
-| Name | Value |
|---|---|
| Example | Data |
- ThisIsAnExtremelyLongWordThatWrapsCorrectlyInsteadOfForcingScrolling. -
-``` - -#### Passed Example 7 - -Large data table requiring two-dimensional layout. - -```html -| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Data | Data | Data |
- This paragraph does not wrap and requires horizontal scrolling. -
-- ThisTextDoesNotWrapAndForcesTheUserToScrollHorizontallyToRead. -
-``` - -#### Failed Example 3 - -Overflow causes horizontal scroll in reading direction. - -```html -- Users must scroll horizontally to read this text. -
-- This text is خارج the viewport and requires horizontal scrolling. -
-- This content requires both horizontal and vertical scrolling. -
-- The paragraph itself requires horizontal scrolling to read. -
-
-function example() {
- console.log("This line may require horizontal scrolling");
-}
-
-```