diff --git a/_rules/content-present-reflow-sc9kkf b/_rules/content-present-reflow-sc9kkf new file mode 100644 index 0000000000..5f0d9ea131 --- /dev/null +++ b/_rules/content-present-reflow-sc9kkf @@ -0,0 +1,285 @@ +--- +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 + previous_authors: + - +--- + +## 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
+``` 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");
+}
+
+```
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
+