Hey Mark, I wanted to check if this includes WebView and if that will operate the same as Chrome? Relevant WebView doc: https://chromium.googlesource.com/chromium/src/+/main/android_webview/docs/web-page-layout.md
On Friday, November 10, 2023 at 5:05:22 PM UTC Philip Jägenstedt wrote: > Hi Mark, > > There is certainly precedent for supporting OS-level settings like this, > and doing it is important for the users who use the settings and expect > consistent experience. As Dominik notes, most such modes are detectable, > and for some the page can react to the preference using prefers-* media > queries. (I think it depends on whether we want pages to have the power to > override the preference, or merely detect it.) To ship something that is > observable in style or layout but that doesn't have usual detection/control > would make this less predictable for web developers. We would be forced to > address the problem sooner or later, so I'd recommend doing it up front. > > An Intent to Ship is the right path to take eventually, and you would > start that from chromestatus.com. However, I think the first order of > affairs is coming up with a proposal for the detection and/or opt-out > should look like, presumably a media query. I'll reach out in private and > suggest next steps. > > Best regards, > Philip > > On Fri, Nov 10, 2023 at 4:12 PM Dominik Röttsches <dr...@chromium.org> > wrote: > >> Hi Mark, >> >> Thanks for sending this and for the summary you made for plans of >> upcoming a11y integrations to web content. In my view, there's more to >> discussion needed. >> >> I understand the desire to transfer an Android a11y feature to the web >> and make it available seamlessly in the browser, as well. Thanks for >> providing the background and examples. The subject should probably be >> prefixed with "Intent To Ship" to highlight it for review by API owners. >> >> You're describing the implementation >> <https://chromium-review.googlesource.com/c/chromium/src/+/4809211> as >> interfering after style resolution and building and modifying all >> FontDescriptions with font weight increased uniformly by 300. >> >> Let me surface a couple of concerns here that we touched upon in the CL >> you uploaded >> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/css/resolver/font_builder.cc;l=623?q=%22FontBuilder::CreateFont%22&ss=chromium> >> >> and in discussion with pdr@. >> >> 1. Availability of font weights: There are differences in >> availability of bolder weights in web content compared to user interfaces >> in Android, when bold or black weights are not provided by the page. In >> Android, the system UI fonts are provided by the OS. I am not sure what >> the >> default UI font on Android is atm, but the OS has control to provide them >> as a variable font with a wide weight range, or provide even a black >> (weight 900) weight. >> While this feature may look reasonable on system UIs, as bold and >> black fonts may be available, on web content this may lead to two less >> desirable situations: >> - Synthesis or lack of bold font: A bold weight is not available >> for a web font, as the page has not included one: font-synthesis is >> applied, or if font-synthesis: none; is specified in CSS: no synthesis >> occured and bolding does not show. >> - Loss of bold semantics: Text is already bold, then the bolding >> adds 300 weight, requesting a black font weight, which is not >> available. >> For that, we don't do synthesis, so the distinction between regular >> text >> and bold text is lost. >> 2. Observability in web content: Contrary to other a11y features like >> zoom, this change would actively modify the DOM and potentially break >> assumptions authors made about their content. Reading the computed style >> of >> the element would not match the style as specified by the author anymore >> - >> it would be a somewhat magic DOM change. >> 3. Detectability and opt-out: With a couple of other accessibility >> related features, for example a user's preference for reduced motion, >> dark >> or light mode, high contrast etc. there are media queries >> <https://drafts.csswg.org/mediaqueries-5/#mf-user-preferences> to >> detect these. Authors can then design for that request. Such a detection >> affordance I find missing from this proposal. >> 4. Interoperability: It's not ensured that other browsers, for >> example FF on Android, would apply and implement the system setting in an >> identical way, leading potentially to a different resulting page. It >> would >> then become hard for page authors to still achieve a consistent user >> experience of their site, as the page appears different in each browser. >> 5. Utility in different languages: Granted, as this is a system >> setting, this is ultimately up to the user: but for multilingual users >> reading content in different scripts, for example an alphabetic and an >> ideographic script, this may not be ideal, as ideographic scripts may not >> necessarily become easier to read when bolded. Bolding could be applied >> selectively per :lang attribute if there was a media query. >> >> Since you're explaining that there is no design doc for the Android side >> change, I am still curious about the original motivation: >> >> 1. Do you have any research findings regarding user trials of this >> feature showing the legibility benefit? >> 2. Do we have any use data: Of the user population that has access to >> this feature, how many are activating it? >> 3. Is there any feedback from app developers on this? >> >> I am by no means an a11y expert but I would propose to synchronize this >> with the CSS working group and the accessibility working group. >> >> As an alternative, perhaps we can introduce prefers-bold-text media >> query, and maybe have a default in the user agent stylesheet that sets the >> body element's font-weight to bolder if the hypothetical prefers-bold-text >> media query is matched. >> >> Dominik >> >> >> On Thu, Nov 9, 2023 at 5:46 PM Mark Schillaci <mschill...@google.com> >> wrote: >> >>> Title: >>> >>> Intent to Ship: Honoring Android OS-Level Bold Text Settings >>> >>> Body: >>> >>> Contact emails >>> >>> mschill...@google.com, dr...@google.com >>> >>> Explainer >>> >>> Help users who need more contrast in their fonts for increased >>> readability, by adding support for a new Android a11y API that opts into >>> text being always bold. >>> >>> Spec >>> >>> No formal design doc >>> >>> Relevant CL: crrev.com/c/4809211 >>> >>> The FontBuilder::CreateFont method (link >>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/css/resolver/font_builder.cc;l=623?q=%22FontBuilder::CreateFont%22&ss=chromium>) >>> >>> will include a call to a new method, FontBuilder::UpdateWeightAdjustment >>> (see CL). This adjustment will be added to the current font weight and >>> clamped to the min/max weight values for that font. The font weight >>> adjustment can be any number; but with the current Android OS it will be 0 >>> by default (no bolding), or 300 when a user has enabled bold text. For >>> example, a font with weight 400 would become weight 700 when the user has >>> enabled the OS-level setting. This will apply to all elements on the web. >>> >>> Summary >>> >>> The Android OS has an accessibility option to enable “Bold text”. When >>> enabled, all content rendered by Android will be in bold. We intend to make >>> this user setting affect web contents in addition to the native OS widgets. >>> >>> Supporting Links >>> >>> No formal explainer doc >>> >>> Configuration.java: >>> https://developer.android.com/reference/android/content/res/Configuration#fontWeightAdjustment >>> >>> Android 12 announcement: https://www.android.com/android-12/ >>> >>> Google support page: >>> https://support.google.com/accessibility/android/answer/11183305?hl=en >>> >>> Demo link >>> >>> Video link (Alphabet internal) >>> <https://drive.google.com/file/d/1Pn5MXkIcMluw716CUB0i8Ztk6iHnfNgm/view?usp=sharing&resourcekey=0-6mV47b3k5O01J_OgDy9h6g> >>> >>> Screenshots of the feature enabled without and with bold text user >>> setting: >>> >>> >>> >>> Motivation >>> >>> This is an accessibility feature, and we want parity between the web and >>> Android OS. >>> >>> Risks >>> >>> Interoperability and Compatibility >>> >>> No interoperability or compatibility risks as this is an Android only >>> feature. This will not run on any other platforms. >>> >>> Solving the intended problem >>> >>> See demo. >>> >>> Ergonomics >>> >>> This feature is likely to be used in parallel to text size scaling or >>> page zooming, since both are intended to assist low-vision users. >>> >>> Activation >>> >>> No >>> >>> Is this feature supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)? >>> >>> No, this is an Android only feature. It is controlled by a setting that >>> is only available in the Android OS-level settings. >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>> ? >>> >>> Progressed upstreamed. >>> >>> Link to entry on the feature dashboard <https://www.chromestatus.com/> >>> >>> https://chromestatus.com/feature/5145839765028864 >>> >>> Requesting approval to ship? >>> >>> Yes >>> >>> >>> >>> Honoring Android OS-Level Bold Text Settings >>> <https://docs.google.com/document/d/1lAvXGK8fV8LOsbcRB_KNaY3UXKG7JGSGKOKccSN5mws/edit?usp=drive_web&resourcekey=0-7pN6ICsESCR0hIbX-Dw74A> >>> >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to blink-dev+unsubscr...@chromium.org. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBu6CvMWnQWJ_Li_ik0UwvWZtVv%2Bbf1M5G_SHdQYKGZBCw%40mail.gmail.com >> >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBu6CvMWnQWJ_Li_ik0UwvWZtVv%2Bbf1M5G_SHdQYKGZBCw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c4a801dc-da17-45d3-8875-48de886474e1n%40chromium.org.