Open JJdeGroot opened 6 months ago
1.4.4 reference to "without assistive technology" would be helpful to clarify in the documentation whether text sizing in an Accessibility section such as mobile Chrome browser, would be "assistive technology" , whether for mobile web or mobile apps.
Would mobile web be exempt from this SC? Some of my work colleagues feel strongly that 1.4.10 for testing desktop web is sufficient to catch any content or functionality issues on small screens, and that the informative ACT rule on the viewport meta tag https://www.w3.org/WAI/standards-guidelines/act/rules/b4f0c3/ enables pinch to zoom by not disabling the viewport meta tag. Since type of text resize / zoom is not defined, the argument is that the ability to pinch to zoom is a sufficient test for this SC for mobile web.
note updated text in WCAG2ICT draft https://w3c.github.io/wcag2ict/#resize-text - should we be discussing/ including terms like Closed Functionality from WCAG2ICT in our Mobile supporting doc?
A colleague reminded me of the Large Content Viewer feature on iOS (I'm not as familiar with a related feature in Android) which can be added to the API as a custom feature in places like tab bars in a native app (as of iOS 13). When the native implementation does not resize with OS size changes, users with Larger Accessibility Size on can longpress to temporarily see a larger version of a button icon or text from these spaces. This doesn't really change much from the language of the WCAG2ICT or Notes, but could be a helpful discussion to include in techniques
Related discussion in WCAG2ICT: https://github.com/w3c/wcag2ict/issues/4
It's challenging to understand the difference between assistive technologies and accessibility features. The usage of assistive technologies would fail ("without needing to use assistive technologies.") while accessibility features would pass ("the application works with the platform accessibility features").
Assistive technologies is defined as term and lists "screen magnifiers, and other visual reading assistants" in the examples.
So it seems that zoom functionality provided on mobile operating systems would fall in the assistive technology category and not in the platform accessibility features category.
The "three tap zoom" functionality is not mentioned explicitly, but considering that's also specifically targeting visual impairments it would probably as be categorised as assistive technology.
I think it would really help app developers if we would clearly distinguish which functionality falls in the assistive technology category, and which falls in the accessibility features category.
Thank you @JJdeGroot for bumping this one! I created an issue at w3c/wcag2ict/issues/527 because I wasn't able to tag a few W3C folks I had in mind. I agree it's very challenging especially with this new guidance in WCAG2ICT
Based on info from https://github.com/w3c/wcag2ict/issues/527 and https://github.com/w3c/matf/issues/67#issuecomment-2489115618, it seems that:
Some research about non-linear text scaling:
Starting from iOS 11, text is scaled using Dynamic Type. The factors are defined in Typography Specifications.
The default scale is Large
Style | Weight | Size (points) | Leading (points) |
---|---|---|---|
Large Title | Regular | 34 | 41 |
Title 1 | Regular | 28 | 34 |
Title 2 | Regular | 22 | 28 |
Title 3 | Regular | 20 | 25 |
Headline | Semibold | 17 | 22 |
Body | Regular | 17 | 22 |
Callout | Regular | 16 | 21 |
Subhead | Regular | 15 | 20 |
Footnote | Regular | 13 | 18 |
Caption 1 | Regular | 12 | 16 |
Caption 2 | Regular | 11 | 13 |
For body text, the default is 17 points, meaning we need to reach 34 points for 200% scaling.
At AX2
the size is 33 points, meaning we need to choose AX3
which is 40 points (235% scaling)
I've calculated the percentages for each size from Large
to AX3
:
Style | Weight | Size (points) | Leading (points) |
---|---|---|---|
Large Title | Regular | 52 (153%) | 61 |
Title 1 | Regular | 48 (171%) | 57 |
Title 2 | Regular | 44 (200%) | 52 |
Title 3 | Regular | 43 (215%) | 51 |
Headline | Semibold | 40 (235%) | 48 |
Body | Regular | 40 (235%) | 48 |
Callout | Regular | 38 (238%) | 46 |
Subhead | Regular | 36 (240%) | 43 |
Footnote | Regular | 33 (254%) | 40 |
Caption 1 | Regular | 32 (267%) | 39 |
Caption 2 | Regular | 29 (264%) | 35 |
Starting from Android 14, text is scaled non-linearly. The docs tell you how to convert values, but there is no table indicating which scaling factor is applied.
Luckily, Android is open-source, the FontScaleConverterFactory.java class holds the non-linear scaling values. The values are generated using font-scaling-array-generator.js
The definition:
/* fromSp= */
new float[] { 8f, 10f, 12f, 14f, 18f, 20f, 24f, 30f, 100},
/* toDp= */
new float[] { 16f, 20f, 24f, 26f, 30f, 34f, 36f, 38f, 100})
In table form:
Base Size | Scaled Size | Scale |
---|---|---|
8 | 16 | 200% |
10 | 20 | 200% |
12 | 24 | 200% |
14 | 26 | 186% |
18 | 30 | 167% |
20 | 34 | 170% |
24 | 36 | 150% |
30 | 38 | 127% |
100 | 100 | 100% |
It seems that text larger than 14 sp will never reach 200% text scaling on stock Android.
On Figma, you can also find visual research by Juliana Mendonca (Jules)
Discussions:
15 April 2024
[Source](https://www.w3.org/2024/04/15-matf-minutes.html#t04) ## 1.4.4 Resize text JJ: question: does resize text apply? JJ: what's interesting is that OS settings can be used for this… with websites, this works differently JJ: with apps it is trickier to determine the percentage…and in iOS there is dynamic font sizing now JJ: that makes it even harder to determine how much textt even has scaled. And we cannot inspect tex QuintinB: what's completely missing… not sure how it works in iPhone but in Android, because we have scale independent sizes, we could set a minimum font size. This has been missing from WCAG since forever QuintinB: so you could say this is the smallest we allow and then go to scaling1. Interpretation and Application:
2. Device-specific Settings:
3. Magnification vs. Native Scaling:
4. Accessibility Settings and Support:
5. Compliance and Documentation: