W3C

– DRAFT –
(MEETING TITLE)

28 March 2024

Attendees

Present
aardrian, Adam_Page, giacomo-petri, jcraig, Mario_Batusic, Mario_Batusic0, scotto
Regrets
-
Chair
-
Scribe
jamesn, JamesNurthen

Meeting minutes

sarah talking through background section of https://gist.github.com/smhigley/45783c28b47ef46818a4aaed3879528f

jamesn: why is calculating the character count an accessibility issue

Mario_Batusic0: if i put a maxlength on an input field then the browser shows something visually?

sarah: no - but it will stop you typing more

jamesn: would we be better to look at aria-invalid and aria-errormessage to better support all sorts of scenarios

@@@ jamesn comments about tokens

BGaraventa: contenteditable - what would qualify as content.

sarah: seems impossible

scotto: contenteditable first. don't think we need to consider the complex ones first. Seems like an extra headache. Should scope to simple contenteditable.

scotto: What is the end goal? Is it to provide a consistent bonk or are we looking to solve the baseline plus the common extra of character count

<sarah> scott: I appreciate your desire for messy drama, but leave me out of it

<BGaraventa> bonk or bing, we should have a poll

<scotto> bonk-ing

<aardrian> boingk

scotto: did appreciate the suggestion for aria-invalid. But think that could make it messy again - don't want to have to worry about why something is invalid.

giacomo-petri: wanted to say what scott said about invalid. Was curious about the current behaviour. Was expecting a bonk but there are no details (tested using VO)

Adam_Page: at least for simple cases outside contentediatable couldn't it be feasible for browsers to compute the current length to support bonking and the need for a bonk

Adam_Page: could also have user preference settings for that

aardrian: broadly on board with scott about contenteditable at least on a first pass. secondarily not a fan of adding a token to aria-invalid. From background for the most part the lack of exposure to screen reader users when hits the maxlength has overcomplicated things. Want to find a way to expose this on simple text fields and simple contenteditable

aardrian: most of the time it is when entering numbers and simple information into a limited system

sarah: probably biased in that i work on a lot of contenteditable with character counts

<Zakim> jamesn, you wanted to react to sarah

jamesn: clarifying questions about character counts on the contenteditable

sarah: normally want invalid to immediately read invalid but for character count want to let the user know with less importance

<Zakim> jcraig, you wanted to discuss more on html input[maxlength] and to respond to Adam that contenteditable input isn't itself interoperable and to respond to the aria-invalid suggestion too

jcraig:

jcraig: aria-invalid piling on

jcraig: would be great to standadise contenteditable - has been a decade of trying to standarise contenteditable content and a lot of it is still not there

jcraig: what is it that you want to happen when maxlength is hit. The key thing that hasn't been mentioned is that there is no output to a sighted user (and that isn't always apparent)

<jcraig> https://bugs.webkit.org/show_bug.cgi?id=271831

jcraig: do we put in HTML-AAM some expectations about mapping these. At the moment there is not a lot of output to screen reader. I did file an issue (and a public webkit issue) to bonk when maxlength is hit

jcraig: first of all - should get maxlength working with AT that needs it

jcraig: sure there is no reason it hasn't just hasn't had priority

jcraig: if we considered for aria for things like the character countdown. We should consider the inverse of maxlength - i.e. characters remaining or allowed chars remaining

jcraig: which the webapp could compute and would allow negatives

giacomo-petri: maybe we should have an announcement when the input is focused

giacomo-petri: a mechanism for them to work out how many they have entered

giacomo-petri: instead of announcing the number entered. Only announce on focus of the element

sarah: are you suggesting another aria attribute?

giacomo-petri: not sure

<Zakim> jcraig, you wanted to respond to convey remaining on field status

jcraig: also hearing the maxlength - there is a goal to keep the interface simple rather than piling everything into a status message. That suggestion lends itself to a prescriptive UI. Feels like a less useful interface

jcraig: the default interface of maxlength doesn't tell you how many are available

sarah: wanted to propose a path forward. Map the HTML attributes and events. Then for aria have an aria-remaining and maybe an aria-maxlength.

sarah: do we need both

jcraig: could map both maxlength and bikeshed-aria-remainingAllowedChars to a single platform API property

jcraig: I think we are in agreement

<Adam_Page> for

<sarah> Preliminary suggestion on approach:

<sarah> 1. Map html maxlength to metadata + events

<sarah> 2. create aria-maxlength to map metadata

<sarah> 3. create aria-remaining-style attr with same events mapping when it reaches or goes below 0

jamesn: spoke of importance of shopping around to AT

jcraig: curious as to what events

* fire an event when the current char count reaches the maxlength

* fire an event whenever there is input that would cause the char count to exceed the maxlength

* fire an event whenever the char count changes

jcraig: "we" already fire events whenever the character count changes

jcraig: not when, but what specific new event types do you need? the SR can query the remaining chars at any time, after any event. there are a number of events already firing, including on every char change. aren't those enough?

sarah: a specific event?

jcraig: just system events about when something changed. Probably selectionchange in this case. The screen reader or the engine could check at this point. If you wanted to change the api so the screen reader doesn't have to listen to character count. but that new event seems unnecessary.

doug: seems like the way to do it rather than creating a brand new event.

jcraig: unless that is creating a performance issue

jcraig: but don't know of a real world scenario.

sarah: will update the mappings maxlength and remainingCharacters. HTML maxlength will map to both. then shop to AT vendors

jcraig: was thinking only the native maxlength would need a mapping and then just have a single ARIA charactersRemaining. I don't think we need an aria-maxlength

<sarah> Final suggestion on approach:

<sarah> 1. Map html maxlength to metadata on chars remaining

<sarah> 3. create aria-remaining-style attr to map chars remaining (including negative values)

<sarah> 4. check with AT vendors on if they like the idea, and if they could use existing events to do useful things (e.g. bonks) with it

<jcraig> 1. create an empty mapping in HTML-AAM for input[maxlength] 2. propose a new aria-remainingchars and map it. to the same... 3. check with vendors

Minutes manually created (not a transcript), formatted by scribe.perl version 221 (Fri Jul 21 14:01:30 2023 UTC).

Diagnostics

Succeeded: s/charactersRemaining/characters remaining or allowed chars remaining/

Succeeded: s/could both map to a single API/could map both maxlength and bikeshed-aria-remainingAllowedChars to a single platform API property/

Succeeded: s/what other events do you need. are the events already firing enough/not when, but what specific new event types do you need? the SR can query the remaining chars at any time, after any event. there are a number of events already firing, including on every char change. aren't those enough?/

Maybe present: BGaraventa, doug, jamesn, sarah

All speakers: aardrian, Adam_Page, BGaraventa, doug, giacomo-petri, jamesn, jcraig, Mario_Batusic0, sarah, scotto

Active on IRC: aardrian, Adam_Page, BGaraventa, giacomo-petri, jamesn, jcraig, Mario_Batusic0, sarah, scotto