- From: Joseph Scheuhammer <clown@alum.mit.edu>
- Date: Mon, 29 Sep 2014 11:17:35 -0400
- To: Richard Schwerdtfeger <schwer@us.ibm.com>, Bryan Garaventa <bryan.garaventa@whatsock.com>
- CC: Alexander Surkov <asurkov@mozilla.com>, "cyns@microsoft.com" <cyns@microsoft.com>, David Bolter <dbolter@mozilla.com>, Marco Zehe <marco.zehe@gmail.com>, "faulkner.steve@gmail.com" <faulkner.steve@gmail.com>, James Craig <jcraig@apple.com>, clown@alum.mit.edu, W3C WAI Protocols & Formats <public-pfwg@w3.org>
Bryan et al.,
The root problem with respect it to @aria-readonly vs @readonly is due
to how the attributes are defined.
HTML5 uses presence/absence for boolean values. The presence of
@readonly indicates that an <input> is read-only, whereas its absence
means the <input> is not read-only.
ARIA uses explicit true/false assignments. If an element is meant to be
read-only vs. not read-only, authors write "aria-readonly='true'" vs.
"aria-readonly='false'", respectively.
The problem occurs with the following markup (the example Bryan
provided), where the HTML @readonly is absent. As far as HTML5 is
concerned, this <input> is *not* read-only:
<!-- Does not set readonly state -->
<input type="text" title="Test 4" aria-readonly="true" />
Thus we have an odd conflict where, at first blush, it looks like the
markup is defining a read-only situation. To avoid this mistake, an
author has to consciously make an effort and recall that the *lack* of
@readonly means it isn't read-only.
Worse, this *was* the only way to declare a read-only state using HTML4,
since there is no native @readonly attribute in HTML4 -- authors had to
use @aria-readonly. The above example is correct for HTML4. One
wonders how much legacy HTML4/ARIA code is now broken. Note that ARIA
1.0 was written with HTML4 in mind -- there are test cases in our test
harness [1] that passed because they were run before @readonly was
implemented by browsers; but likely no longer pass.
FWIW, note that it requires an author to make an effort to add the
@aria-readonly="true" to the <input>. Even though the author has
technically made an error and introduced a conflict, it still looks like
they intended to make the <input> read-only, doesn't it?
I think there is an issue in tracker and a prior discussion about this,
but I couldn't find it this morning. I'll keep looking.
> Does this include any other attributes besides aria-readonly,
> aria-disabled, and aria-required?
Generally, there is a conflict issue for every HTML5 attribute that,
first, matches the semantics of an aria-* attribute, and, secondly, uses
the presence/absence technique. At least one other has a different
value space, namely, @aria-autocomplete vs. @autocomplete.
[1] https://www.w3.org/WAI/PF/testharness/
On 2014-09-29 8:04 AM, Richard Schwerdtfeger wrote:
>
> No. The ARIA attribute overrides the native in the a11y tree. It is up
> to the author to do the right thing.
>
> Rich
>
> Sent from my iPad
>
> On Sep 28, 2014, at 9:54 PM, Bryan Garaventa
> <_bryan.garaventa@whatsock.com_ <mailto:bryan.garaventa@whatsock.com>>
> wrote:
>
> Thanks, I’ll CC James too since he can be aware of this thread
> regarding Safari too.
>
>
>
> So, just so I’m perfectly clear and don’t spread inaccurate
> information to others when trying to explain this, all of the state
> modifiers such as aria-readonly, aria-disabled, aria-required, and any
> other that has a native attribute equivalent is going to be removed
> from the browser accessibility tree mappings within native form fields
> and links in the future?
>
>
>
> Does this include any other attributes besides aria-readonly,
> aria-disabled, and aria-required?
>
>
>
> *From:*Richard Schwerdtfeger [_mailto:schwer@us.ibm.com_]
> *Sent:*Sunday, September 28, 2014 4:52 PM
> *To:*Bryan Garaventa
> *Cc:*'Alexander Surkov'; _clown@alum.mit.edu_
> <mailto:clown@alum.mit.edu>; _cyns@microsoft.com_
> <mailto:cyns@microsoft.com>; 'David Bolter'; 'Marco Zehe';
> _faulkner.steve@gmail.com_ <mailto:faulkner.steve@gmail.com>
> *Subject:*RE: Firefox bug regarding aria-readonly
>
>
>
> Hi Bryan,
>
> response below between <rich> and </rich>
>
> Best,
> Rich
>
> Rich Schwerdtfeger
>
> <image001.gif>"Bryan Garaventa" ---09/28/2014 01:30:14 PM---I think I
> see what you mean, so to make certain that I understand, native active
> elements should not
>
> From: "Bryan Garaventa" <_bryan.garaventa@whatsock.com_
> <mailto:bryan.garaventa@whatsock.com>>
> To: Richard Schwerdtfeger/Austin/IBM@IBMUS
> Cc: "'Alexander Surkov'" <_asurkov@mozilla.com_
> <mailto:asurkov@mozilla.com>>, "'David Bolter'" <_dbolter@mozilla.com_
> <mailto:dbolter@mozilla.com>>, "'Marco Zehe'" <_marco.zehe@gmail.com_
> <mailto:marco.zehe@gmail.com>>, <_clown@alum.mit.edu_
> <mailto:clown@alum.mit.edu>>, <_cyns@microsoft.com_
> <mailto:cyns@microsoft.com>>
> Date: 09/28/2014 01:30 PM
> Subject: RE: Firefox bug regarding aria-readonly
>
> ------------------------------------------------------------------------
>
>
>
>
> I think I see what you mean, so to make certain that I understand,
> native active elements should not include ARIA state modifiers in
> place of natively supported state modifiers?
>
> <rich>yes</rich>
> E.G
>
> <input type=”text” readonly />
>
> And
>
> <div tabindex=”0” role=”textbox” aria-readonly=”true”
> contenteditable></div>
>
> So ARIA is valid on one but not the other?
>
> <rss>ARIA is valid on both. However, if you have a native readonly set
> and then apply aria-readonly="false" you have a conflict. The readonly
> is equivalent to aria-readonly="true">
>
> What does this mean for native active elements that don’t support
> native state modifiers though?
>
> E.G
>
> <a href=”#” disabled > Link that is styled as being disabled </a>
>
> The above markup will not set the unavailable state in IE or FF,
> however the following will.
>
> <a href=”#” aria-disabled=”true” > Link that is styled as being
> disabled </a>
>
> <rich>This is a bug in IE and FF. See the HTML5 specification under
> section 3.2.7.1. It clearly states:
> "Element that is disabled The aria-disabled state set to 'true'"
>
> This is why we have native host language semantics in HTML and SVG.
> This is also why we should have had an HTML implementation guide that
> was normatively specified for HTML5. We have not clearly proven
> accessibility implementation. This was the type of problem I told
> people we would have but we could not address until HTML 5.1 and ARIA
> 1.1. We are doing that now.
>
> So, I think we all appreciate your frustration Bryan and we are
> working to correct these inconsistencies. So, although HTML5 is going
> out I believe the truly interoperable version will be the one aligned
> with ARIA 1.1 where we will normatively specified accessibility API
> mapping specifications.
>
> I will also tell you that we are making VERY GOOD progress on the Core
> Accessibility API spec. and the HTML5 and SVG specs. are right on its
> heals as they are dependent on the Core specification. This was the
> strategy we all agreed to for the mapping specs. I don't know what
> ARIA 2.0 will look like but this will be good for what we need for the
> near future.
>
> I am cc'ing Steve to make sure he sees this mapping issue with
> unavailable. Thanks for raising the issue Bryan.
>
>
> </rich>
>
> So would this be a browser bug too?
>
> <rich>yes. per above.</rich>
>
>
> *From:* Richard Schwerdtfeger [_mailto:schwer@us.ibm.com_]
> *Sent:* Sunday, September 28, 2014 9:33 AM
> *To:* Bryan Garaventa
> *Cc:* Alexander Surkov; David Bolter; Marco Zehe; _clown@alum.mit.edu_
> <mailto:clown@alum.mit.edu>; _cyns@microsoft.com_
> <mailto:cyns@microsoft.com>
> *Subject:* Re: Firefox bug regarding aria-readonly
>
>
> 1. It is mapped to a11y Apis as read only.
> 2. IE needs to fix its bugs. We should not be coding to bugs. Read
> only has been in ARIA for years.
> 3. The author should make sure it behaves as read only. If there is a
> conflict it as author error.
>
> Thee reason we have these issues is we gave a copy of the aria spec.
> to Hixie years ago and he folded many of the features in to html 5.
>
> To avoid these conflicts authors should use the built in readonly state.
>
> Rich
>
>
>
> Sent from my iPad
>
> > On Sep 27, 2014, at 11:05 PM, Bryan Garaventa
> <_bryan.garaventa@whatsock.com_ <mailto:bryan.garaventa@whatsock.com>>
> wrote:
> >
> > That's a good idea, I've also CCd Rich and Cynthia too, since
> aria-readonly and aria-disabled does work correctly in IE, setting
> both the readonly and unavailable state for each.
> >
> > The question to all here from me, if aria-readonly is not supposed
> to set the readonly state on a form field, how are ATs supposed to
> know that the state is readonly when interfacing with this object in
> the accessibility tree?
> >
> > -----Original Message-----
> > From: Alexander Surkov [_mailto:asurkov@mozilla.com_]
> > Sent: Saturday, September 27, 2014 7:48 PM
> > To: Bryan Garaventa
> > Cc: David Bolter; Marco Zehe; _clown@alum.mit.edu_
> <mailto:clown@alum.mit.edu>
> > Subject: Re: Firefox bug regarding aria-readonly
> >
> > Sure, I bet we have some special processing for aria-disabled and we
> don't have it for aria-readonly. My concern is how much we do it
> correctly. Maybe we should fix aria-disabled rather than
> aria-readonly. CC'ing Joseph.
> >
> >
> > ----- Original Message -----
> > From: "Bryan Garaventa" <_bryan.garaventa@whatsock.com_
> <mailto:bryan.garaventa@whatsock.com>>
> > To: "Alexander Surkov" <_asurkov@mozilla.com_
> <mailto:asurkov@mozilla.com>>, "David Bolter" <_dbolter@mozilla.com_
> <mailto:dbolter@mozilla.com>>
> > Cc: "Marco Zehe" <_marco.zehe@gmail.com_ <mailto:marco.zehe@gmail.com>>
> > Sent: Saturday, September 27, 2014 3:14:00 PM
> > Subject: RE: Firefox bug regarding aria-readonly
> >
> > Technically they should both set the same state, readonly when one
> or the other is present.
> >
> > This actually does occur when aria-disabled='true' is a applied to a
> form field, setting the unavailable state correctly in FF in the same
> manner as the disabled attribute.
> >
> > -----Original Message-----
> > From: Alexander Surkov [_mailto:asurkov@mozilla.com_]
> > Sent: Saturday, September 27, 2014 10:23 AM
> > To: David Bolter
> > Cc: Bryan Garaventa; Marco Zehe
> > Subject: Re: Firefox bug regarding aria-readonly
> >
> > What ARIA says nowadays, should it override native state when is in
> conflict?
> >
> > ----- Original Message -----
> > From: "David Bolter" <_dbolter@mozilla.com_
> <mailto:dbolter@mozilla.com>>
> > To: "Bryan Garaventa" <_bryan.garaventa@whatsock.com_
> <mailto:bryan.garaventa@whatsock.com>>
> > Cc: "Marco Zehe" <_marco.zehe@gmail.com_
> <mailto:marco.zehe@gmail.com>>, _asurkov@mozilla.com_
> <mailto:asurkov@mozilla.com>
> > Sent: Saturday, September 27, 2014 12:02:05 PM
> > Subject: Re: Firefox bug regarding aria-readonly
> >
> > Cc+ surkov
> >
> > Bryan Garaventa <_bryan.garaventa@whatsock.com_
> <mailto:bryan.garaventa@whatsock.com>> wrote:
> >
> > Hi guys,
> > I'm not sure where to send this, so I figured I'd just pass it along
> directly.
> >
> > Basically, in Firefox, the readonly attribute on a form field will
> set the 'readonly' state in the accessibility tree, however
> aria-readonly='true' will not.
> >
> > Example:
> >
> > <!-- Sets readonly state -->
> > <input type="text" title="Test 3" readonly />
> >
> > <!-- Does not set readonly state -->
> > <input type="text" title="Test 4" aria-readonly="true" />
> >
> > All the best,
> > Bryan
> >
> >
> >
--
;;;;joseph.
'Array(16).join("wat" - 1) + " Batman!"'
- G. Bernhardt -
Received on Monday, 29 September 2014 15:18:08 UTC