E-mail List Archives
Re: WCAG 2.1 - 1.3.5 - How to capture a violation?
From: Jonathan Avila
Date: Jul 27, 2018 5:31AM
- Next message: Isabel Holdsworth: "en-dash, dash and minus"
- Previous message: John Foliot: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- Next message in Thread: Jared Smith: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- Previous message in Thread: John Foliot: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- View all messages in this Thread
Don't forget WCAG2.0 also has 2.4.6 headings and labels describe topic or purpose but unlike 1.3.5 doesn't require it to be programmatically determinable.
Jonathan
Sent from my iPhone
> On Jul 27, 2018, at 2:48 AM, John Foliot < <EMAIL REMOVED> > wrote:
>
> Hi Jared,
>
> It's rather difficult to
> explain that an associated label is "programmatically determined" to
> convey "information and relationships" for an input under 1.3.1, but
> is not "programmatically determined" to convey "purpose" for an input
> under 1.3.5.
>
> Quick check: we're not confusing "programmatically *associated*" with
> "programmatically *determined*" here, correct?
>
> An "associated label" (i.e. one that uses the <label> element) is but one
> way of labeling an input to convey information and relationships; we could
> also use @label or @labelledby to meet the requirements of SC 1.3.1. As
> long as a "label" (aka Accessible Name) is programmatically determinable,
> then the value string that is associated to the concept of "label" can also
> be programmatically determined, and presented in a different modality (for
> example, in audio via a screen reader).
>
> *WHAT* the value string is (i.e. the text or instructions to convey the
> purpose *to the human user*, in any language) is not covered by this SC,
> but rather by an "Understanding" SC: Success Criterion 3.3.2 Labels or
> Instructions (Level A): Labels or instructions are provided when content
> requires user input. It's both SC, working together, that allows for both
> Perceiveability and Understandability in this use-case.
>
> Succinctly: 1.3.1 ensures that machines and software (like screen readers)
> can determine that there is a label there, and further convey what the
> label's "value" is to different modalities, 3.3.2 ensures that the end user
> can actually understand the string and do something with it (i.e., interact
> with the input)
>
>
> (Quick related note - why is title attribute -
> https://www.w3.org/TR/WCAG20-TECHS/H65.html - sufficient to meet
> 1.3.1? This doesn't seem to meet your definition for "programmatically
> determined", right?)
>
> ah yes, @title. A three part answer:
>
> 1) It is important to again remember that SC 1.3.1 wants a programmatically
> determinable way of determining the the label for the input - a machine
> recognizable identifier (for example @label or @title) that will have a
> value string that, for the purposes of the accessibility API's need for an
> "Accessible Name", can be a random string that can be both seen visually,
> but also can be presented in a different modality (audio). Again the *value* of
> the string here is for human consumption and cognition (thus a string that
> still needs to be "understandable" to meet SC 3.3.2), but the "association"
> is programmatically 'determined' (aka identified and associated) using an
> attribute (fixed term) on the input element. (Remember too that it has to
> be a fixed term, so that the machine has a fixed text string to "look up"
> or pattern match against.)
>
> 2) Originally, the HTML Accessibility API Mappings 1.0 (
> https://www.w3.org/TR/html-aam-1.0/#input-type-text-input-type-password-input-type-search-input-type-tel-input-type-url-and-textarea-element)
> included @title as part of the Accessible Name calculation:
>
> 1. If the control has an aria-label
> <https://www.w3.org/TR/wai-aria-1.1/#aria-label> or an aria-labelledby
> <https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby> attribute
> the accessible
> name <https://www.w3.org/TR/html-aam-1.0/#dfn-accessible-name> is to
> be calculated using the algorithm defined in Accessible Name and
> Description: Computation and API Mappings 1.1
> <https://w3c.github.io/accname/>.
> 2. Otherwise use the associated label element(s) accessible name
> <https://www.w3.org/TR/html-aam-1.0/#dfn-accessible-name>(s) - if
> more than one label is associated; concatenate by DOM order,
> delimited by spaces.
> 3. Otherwise use the title attribute
> 4. If none of the above yield a usable text string there is no accessible
> name <https://www.w3.org/TR/html-aam-1.0/#dfn-accessible-name>
>
> However, as we know, in practice this wasn't working - @title was *NOT*
> being conveyed by screen readers as the accessible name. (I'll note that
> this is the fault of the Screen Readers for not supporting the spec, but
> also necessitating a change in the specification). This has been addressed
> with the publishing of Accessible Name and Description Computation 1.1 (W3C
> Candidate Recommendation 19 June 2018) (
> https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_te) which has
> removed @title from the calculation. As such it has negated that technique
> (note to self - action item two: more housekeeping)
>
> 3) We know that "technical conformance" does not equal "accessible", so the
> technique, while ineffective today (and I would recommend it be avoided)
> will none-the-less still meet the "technical conformance" that a legal
> reading of WCAG 2.0. conformance may mandate. (In other words, because it
> was an effective [sic] technique when 2.0 was published, we cannot un-ring
> the legislative bell that attached legal conformance to the technical
> specification.) It sucks, mostly because legislation demands a fixed
> published spec, while technology changes daily from under our feet, but
> that is the answer to your question. (On a more positive note, because
> Techniques are non-normative, it may be easier to remove them, so I think
> we'll be able to do so, but I cannot "guarantee" that - we may have to
> settle with a WARNING in that technique.)
>
>
> If a field maps to one of the defined "input purposes" and does not
> have the proper autocomplete attribute, is it a failure? In other
> words, is
> <label>Name <input type="text"></label>
> now a WCAG 2.1 failure?
>
> Well... it does not meed the requirement of SC 1.3.5, but it does still
> meet WCAG 2.1's SC 1.3.1 and SC 3.3.2. But broadly speaking, no, you could
> not claim 2.1 conformance with that code snippet, because the value, while
> in English in your example, can be any string text value in any language,
> so it cannot be "looked up" by a machine. Machines need fixed token strings
> to do that kind of functionality.
>
>
> I really need a clear answer to this question. You've stated several
> times that autocomplete is not the only way to meet this SC.
>
> No I haven't Jared, please re-read my responses.
>
> Today(!) the only *functioning technique* we have to meet this SC is to use
> @autocomplete, but what is important to understand (with relationship to
> the 'ask' of this SC) is what we needed to do: we needed a mechanism to
> attach a fixed token string (a taxonomy term) to the input element that
> could be machine interpreted for the purposes of output in different
> modalities.
>
> Initially, this SC had a lot more to it (common buttons and controls - see
> this for an *idea* of what we were looking at:
> https://docs.google.com/spreadsheets/d/1N63TKXrUXSmF1OeZAgpy8iTnDyQ1nzVbrevq2lBDvos/edit?usp=sharing
> )
> , but because we lacked the appropriate taxonomy, and creating a new
> taxonomy was out of scope for our Working Group, we had to 'settle' for a
> smaller
> existing
> taxonomy that was those token values initially defined in HTML5 for
> @autocomplete
> .
>
> However, while that taxonomy has yet to be ported to say, a Schema.org
> notation, I had also explored the ability to so, so that we could attach
> that token value to an element using Microdata (
> https://www.w3.org/TR/microdata/) - a technique put aside (due to the lack
> of an established taxonomy) but I hope to continue to expand upon.
>
> Additionally, and related to this discussion, the Personalization Task
> force is currently exploring other/different mechanisms to attach an
> extended taxonomy (under development) for other similar needs. (see:
> https://github.com/w3c/personalization-semantics/wiki/Comparison-of-ways-to-use-vocabulary-in-content
> )
>
>
> This was
> a primary factor in my misunderstanding this SC - I thought if
> @autocomplete isn't required, then certainly a descriptive label is
> therefore sufficient, because how else would they pass? Now, based on
> your explanations, I don't see how anything other than @autocomplete
> could be sufficient to meet this SC today.
>
> Well, once again, a descriptive label is for the human to compute, but we
> need a mechanism that also allows for a machine to compute the "Purpose" of
> the element. That mechanism has two parts, a means of attaching it that is
> "programmatically determinable" (i.e. an attribute), AS WELL AS a token
> value taken from the list of defined tokens that are the @autocomplete/WCAG
> 2.1 tokens as the value string of the attribute. (In the same way that
> @lang - the attribute, uses a fixed token - the country code values defined
> in the ISO specification, as the two parts required to meet the Language
> SC's: lang="en" passes, lang="english" fails)
>
>
> As a follow-up... what if the associated label uses language that is
> common and standard for that input purpose (e.g., "Name" or "Credit
> card"). I believe most (all?) common form fillers interpret these
> common label values to provide the needed form-fill functionality
> (otherwise they wouldn't work on forms that lack @autocomplete).
>
> Nope, because those are random text strings that, in your example, are in
> the same language as the token (English), but often won't be. Additionally
> and as an aside, "Credit Card" would not suffice, as the required token for
> that input is actually (presumably?) cc-number (but, because your visible,
> on-screen English label is actually too vague, could also be one of any of
> the other cc-* values, such as cc-name, cc-address, etc. See:
> http://john.foliot.ca/demos/autofill.php)
>
> As for form fillers, my limited testing (
> https://www.w3.org/WAI/GL/wiki/WCAG_2.1_Implementations/JF/research)
> suggests that those tools are currently doing heuristics against English
> token values, but they don't work very well if you aren't using the English
> token somewhere in the code, so their usefulness is significantly
> diminished in non-English locales. This is a poster child for why
> "standards" are so important: if those tools using heuristics today instead
> supported the @autocomplete spec as defined, they could extend their market
> reach, but, well, you know...
>
>
> Using
> @autocomplete would thus provide no additional benefit or
> functionality in this case. If the author deems these to be
> "accessibility supported", would this be sufficient to meet 1.3.5?
>
> Functionality to whom? More importantly, is the benefit understood? That
> what is being sought is not for the humans to consume directly, its for the
> machines: the goal of this SC is NOT to make forms easier to fill out, but
> rather for machines to understand, with zero ambiguity, what is being
> sought in the tagged <input>, using an attribute and a fixed token or
> taxonomy term, so that expressing that "purpose" or "label" can be further
> conveyed to different modalities (such as using an icon). Please stop
> thinking of this as a human-consumable requirement, it isn't, it's for
> machines to do something with.
>
>
> Your arguments about other languages seems a stretch here. Why would
> someone that only speaks Vietnamese need to know the purpose of an
> input on an English page they can't understand? But if their
> Vietnamese form filler knows that "Sá» thẻ tÃn dụng" is for credit card
> number on a Vietnamese page, then @autocomplete doesn't give them
> anything extra. If this is the case, then why require it to meet
> 1.3.5?
>
> Hopefully by now, the answer here is clear. The outcome of the Success
> Criteria is to take "languages" out of the equation: we're using a fixed
> token, written in English, as a value string for an attribute, also written
> in English, "programmatically" attached to the <input> element - none of
> which is shown on screen, but expressed in the DOM, so that machines now
> also understand (or at least can be programmed to understand) what is being
> sought. The fact that the only technique we can apply today also has (for
> purposes of this SC) the added benefit that browsers and other tools can
> also act on that metadata by, for example, supplying *your* data (localized
> text strings stored locally in the browser or password manager tools) when
> the machine understands what is being asked for in a form input is a bonus:
> that functionality is but one outcome achieved when you tag the input with
> a fixed token value, but not the goal of the SC (which, coming full circle,
> I acknowledge is less than clear in the Understanding document, which needs
> to be fixed).
>
>
> HTH
>
> JF
>
>> On Thu, Jul 26, 2018 at 10:10 AM, Jared Smith < <EMAIL REMOVED> > wrote:
>>
>> John -
>>
>> Thanks for taking the time to provide such a detailed explanation.
>> This really is very helpful and informative.
>>
>> I've always viewed programmatically determined as being adapted in a
>> way or "different modalities" that provides meaning and usefulness to
>> the user. But I can see based on your explanations that this
>> user-focused interpretation is too broad - it focuses instead only on
>> computer parsing.
>>
>> I won't belabor the discussion about the semantics and nuances of the
>> language and terms any more, except to restate that I do not believe
>> that we can expect web authors to understand the requirements of this
>> success criterion from the normative text. It's rather difficult to
>> explain that an associated label is "programmatically determined" to
>> convey "information and relationships" for an input under 1.3.1, but
>> is not "programmatically determined" to convey "purpose" for an input
>> under 1.3.5.
>>
>> (Quick related note - why is title attribute -
>> https://www.w3.org/TR/WCAG20-TECHS/H65.html - sufficient to meet
>> 1.3.1? This doesn't seem to meet your definition for "programmatically
>> determined", right?)
>>
>> But this language and the W3C's interpretation of it is not changing.
>> So it becomes incumbent upon us to try to explain it in ways that will
>> minimize confusion and potential liability for web authors. Which
>> brings me to a couple additional questions...
>>
>> If a field maps to one of the defined "input purposes" and does not
>> have the proper autocomplete attribute, is it a failure? In other
>> words, is
>> <label>Name <input type="text"></label>
>> now a WCAG 2.1 failure?
>>
>> I really need a clear answer to this question. You've stated several
>> times that autocomplete is not the only way to meet this SC. This was
>> a primary factor in my misunderstanding this SC - I thought if
>> @autocomplete isn't required, then certainly a descriptive label is
>> therefore sufficient, because how else would they pass? Now, based on
>> your explanations, I don't see how anything other than @autocomplete
>> could be sufficient to meet this SC today.
>>
>> As a follow-up... what if the associated label uses language that is
>> common and standard for that input purpose (e.g., "Name" or "Credit
>> card"). I believe most (all?) common form fillers interpret these
>> common label values to provide the needed form-fill functionality
>> (otherwise they wouldn't work on forms that lack @autocomplete). Using
>> @autocomplete would thus provide no additional benefit or
>> functionality in this case. If the author deems these to be
>> "accessibility supported", would this be sufficient to meet 1.3.5?
>>
>> Your arguments about other languages seems a stretch here. Why would
>> someone that only speaks Vietnamese need to know the purpose of an
>> input on an English page they can't understand? But if their
>> Vietnamese form filler knows that "Sá» thẻ tÃn dụng" is for credit card
>> number on a Vietnamese page, then @autocomplete doesn't give them
>> anything extra. If this is the case, then why require it to meet
>> 1.3.5?
>>
>> I really appreciate the dialogue! Thanks again!
>>
>> Jared
>> >> >> >> >>
>
>
>
> --
> John Foliot
> Principal Accessibility Strategist
> Deque Systems Inc.
> <EMAIL REMOVED>
>
> Advancing the mission of digital accessibility and inclusion
> > > >
- Next message: Isabel Holdsworth: "en-dash, dash and minus"
- Previous message: John Foliot: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- Next message in Thread: Jared Smith: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- Previous message in Thread: John Foliot: "Re: WCAG 2.1 - 1.3.5 - How to capture a violation?"
- View all messages in this Thread