All The Accessibility Changes - #3319
Conversation
| ## Common failure patterns | ||
|
|
||
| - marketing-driven all-caps or camel-case strings ("BUY NOW", "LogIn") baked into the source text | ||
| - hyphenated labels with inconsistent casing ("Sign-in", "Check-out") | ||
|
|
||
| ## Remediation guidance | ||
|
|
||
| - use sentence case (e.g., "Save changes") in the underlying string instead of all caps or inconsistent capitalization | ||
| - if a stylized all-caps look is desired visually, apply it through styling (`android:textAllCaps`) rather than in the source string, so the underlying accessible text remains normally cased | ||
| - check hyphenated labels render as "Sign-In" style, not "Sign-in" |
There was a problem hiding this comment.
Why lowercase and not sentence casing?
| @@ -0,0 +1,40 @@ | |||
| --- | |||
| id: accessibility-android-rule-button-capitalization-check | |||
There was a problem hiding this comment.
What are ids here? Will it be visible in any docs to readers?
Want to make sure because when we add support for rules deselection in automation this might confuse with the rule id that we'll use (same as the ones we use internally for all rules) in docs that would be used in automation scripts.
| | Missing Button Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-button-element-label/) | | ||
| | Button Element Capitalisation Check | 3.1.6 | [Rule →](/support/docs/accessibility-ios-rule-button-element-capitalisation-check/) | | ||
| | Missing Checkbox Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-checkbox-element-label/) | | ||
| | Missing Editable Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-editable-element-label/) | | ||
| | Missing Switch Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-switch-element-label/) | | ||
| | Missing Checkbox Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-checkbox-element-label/) | | ||
| | Missing Editable Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-editable-element-label/) | | ||
| | Missing Switch Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-switch-element-label/) | |
There was a problem hiding this comment.
These were correctly 1.3.1 only? according to the SC we show for them on ios currently.
| | Missing Button Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-button-element-label/) | | ||
| | Button Element Capitalisation Check | 3.1.6 | [Rule →](/support/docs/accessibility-ios-rule-button-element-capitalisation-check/) | | ||
| | Missing Checkbox Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-checkbox-element-label/) | | ||
| | Missing Editable Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-editable-element-label/) | | ||
| | Missing Switch Element Label | 1.3.1 | [Rule →](/support/docs/accessibility-ios-rule-missing-switch-element-label/) | | ||
| | Missing Checkbox Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-checkbox-element-label/) | | ||
| | Missing Editable Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-editable-element-label/) | | ||
| | Missing Switch Element Label | 4.1.2 | [Rule →](/support/docs/accessibility-ios-rule-missing-switch-element-label/) | |
| @@ -0,0 +1,34 @@ | |||
| # Duplicate Accessibility Label | |||
|
|
|||
| > For the full site index for AI agents, see [llms.txt](https://www.testmuai.com/support/docs/llms.txt). | |||
There was a problem hiding this comment.
why this here?
Noticed the same on multiple non AI rules, please check if intended
| The scanner examines whether on-screen text is sized in `sp` (scale-independent pixels) — the only Android text unit that responds to the user's system-wide font-size preference. Text sized in fixed units (`dp`, `px`, `pt`, `in`, `mm`) renders at a fixed size no matter what the user configures. | ||
|
|
||
| :::note | ||
| The required device data is available on Android 11+ only; on older devices the rule reports **Incomplete** rather than passing silently. |
There was a problem hiding this comment.
on older devices the rule reports Incomplete rather than passing silently.
Don't use this line as that is marked only internally, we consider incomplete as pass only and its passed silently
|
|
||
| - identify nouns — find words like "button", "link", or "icon" in the label | ||
| - strip the string — remove the noun (e.g., "Settings Icon" becomes "Settings") | ||
| - assign a programmatic role instead — use the `Button` class, or `role = Role.Button` in Compose, so TalkBack announces it once, correctly |
There was a problem hiding this comment.
in hindsight , lets not go with "noun", we can make it more accurate by:
## Remediation guidance
- identify role keywords — find words like "button", "link", or "icon" in the label that describe the control's type
- remove them — "Settings Icon" becomes "Settings"
- assign the role programmatically instead — use the `Button` class, or `role = Role.Button` in Compose, so TalkBack announces it once, correctly
| :::info WCAG Reference | ||
| **Maps to:** WCAG 1.3.1 Info and Relationships | **Applies to:** WCAG 2.0, WCAG 2.1, WCAG 2.2 | ||
| **Introduced in:** WCAG 2.0 | **Level:** A | [Read the official specification →](https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html) | ||
| **Maps to:** WCAG 4.1.2 Name, Role, Value | **Applies to:** WCAG 2.0, WCAG 2.1, WCAG 2.2 |
| > For the full site index for AI agents, see [llms.txt](https://www.testmuai.com/support/docs/llms.txt). | ||
|
|
No description provided.