[whatwg] ARIA semantics of implied rows

2014-09-26 Thread Daniel Trebbien
Hi WHATWG,

§4.9.12 Processing model (
https://html.spec.whatwg.org/multipage/tables.html#processing-model-3 )
currently states:

A *row* is a complete set of slots from x=0 to x=x_width-1, for a
 particular value of y. Rows usually correspond to tr elements, though a row
 group can have some implied rows at the end in some cases involving cells
 spanning multiple rows.


I am thinking that implied rows refers to cases such as:

table id=theTable border=1
  tbody
tr
  td rowspan=10 colspan=3These are the first 10 rows./td
/tr
  /tbody
  tbody
tr
  tdRow 11, Column 1/td
  tdRow 11, Column 2/td
  tdRow 11, Column 3/td
/tr
tr
  tdRow 12, Column 1/td
  tdRow 12, Column 2/td
  tdRow 12, Column 3/td
/tr
tr
  tdRow 13, Column 1/td
  tdRow 13, Column 2/td
  tdRow 13, Column 3/td
/tr
tr
  tdRow 14, Column 1/td
  tdRow 14, Column 2/td
  tdRow 14, Column 3/td
/tr
tr
  tdRow 15, Column 1/td
  tdRow 15, Column 2/td
  tdRow 15, Column 3/td
/tr
  /tbody
/table

.. where because the first row group has a TD spanning 10 rows but only one
TR, there are 9 implied rows in that row group.

As specified by WAI-ARIA 1.0:

The HTML Working Group is incorporating WAI-ARIA into HTML 5. Official
 support for WAI-ARIA in HTML will be provided in that specification. This
 DTD is made available only as a bridging solution for applications
 requiring DTD validation but not using HTML 5.


http://www.w3.org/TR/wai-aria/appendices#html_dtd

One issue is that the ARIA semantics for implied rows are not defined.

Currently, browsers that I have tested (Chrome 37.0.2062.124, Firefox
32.0.3, Safari 7.1, and Internet Explorer 11) only expose 6 rows for the
example listed above.  In order to get all 15 rows exposed to assistive
technologies, I need to insert empty TR elements for the implied rows.

It would be very useful if implied rows were exposed implicitly, using the
same role as the row containing the anchor slot of the first cell in the
implied row.

Sincerely,

Daniel Trebbien


Re: [whatwg] ARIA semantics of implied rows

2014-09-26 Thread Anne van Kesteren
On Fri, Sep 26, 2014 at 7:59 PM, Daniel Trebbien dtrebb...@gmail.com wrote:
 http://www.w3.org/TR/wai-aria/appendices#html_dtd

DTDs have nothing to do with what you're seeing here. They're best ignored.


 One issue is that the ARIA semantics for implied rows are not defined.

I'm not sure I understand why ARIA would come into play at all when it
comes to tables. Weren't tables accessible (I realize it has always
been somewhat hard to convey them properly) long before ARIA existed?


-- 
https://annevankesteren.nl/


Re: [whatwg] ARIA semantics of implied rows

2014-09-26 Thread Daniel Trebbien
(sorry, forgot to copy the list)

On Fri, Sep 26, 2014 at 2:09 PM, Anne van Kesteren ann...@annevk.nl wrote:

 On Fri, Sep 26, 2014 at 7:59 PM, Daniel Trebbien dtrebb...@gmail.com
 wrote:

...


  One issue is that the ARIA semantics for implied rows are not defined.

 I'm not sure I understand why ARIA would come into play at all when it
 comes to tables. Weren't tables accessible (I realize it has always
 been somewhat hard to convey them properly) long before ARIA existed?


The issue is that, as far as I can tell, HTML 4.01 does not support
implied rows:
http://www.w3.org/TR/html401/struct/tables.html
This is new to HTML5.

WAI-ARIA does define roles for a table (grid, row, rowgroup, gridcell,
etc.), but you can't specify the role and state attributes for HTML5
implied rows.

I ran through the forming a table steps (
https://html.spec.whatwg.org/multipage/tables.html#forming-a-table ) on
paper for the example and I came up with x_width is 3 and y_height is 15.
If the table model has 3 columns and 15 rows (9 of which are implied), then
browsers should expose 3 columns and 15 rows.


Re: [whatwg] ARIA semantics of implied rows

2014-09-26 Thread Tab Atkins Jr.
On Fri, Sep 26, 2014 at 11:39 AM, Daniel Trebbien dtrebb...@gmail.com wrote:
 On Fri, Sep 26, 2014 at 2:09 PM, Anne van Kesteren ann...@annevk.nl wrote:
 On Fri, Sep 26, 2014 at 7:59 PM, Daniel Trebbien dtrebb...@gmail.com
 wrote:
  One issue is that the ARIA semantics for implied rows are not defined.

 I'm not sure I understand why ARIA would come into play at all when it
 comes to tables. Weren't tables accessible (I realize it has always
 been somewhat hard to convey them properly) long before ARIA existed?


 The issue is that, as far as I can tell, HTML 4.01 does not support
 implied rows:
 http://www.w3.org/TR/html401/struct/tables.html
 This is new to HTML5.

No, HTML4 supported this; it probably didn't actually have any
normative text around it, but browsers certainly supported having a
rowspan go past the end of the explicit rows.

~TJ


Re: [whatwg] ARIA semantics of implied rows

2014-09-26 Thread Daniel Trebbien
On Fri, Sep 26, 2014 at 3:01 PM, Tab Atkins Jr. jackalm...@gmail.com
wrote:

 On Fri, Sep 26, 2014 at 11:39 AM, Daniel Trebbien dtrebb...@gmail.com
 wrote:
  On Fri, Sep 26, 2014 at 2:09 PM, Anne van Kesteren ann...@annevk.nl
 wrote:
  On Fri, Sep 26, 2014 at 7:59 PM, Daniel Trebbien dtrebb...@gmail.com
  wrote:
   One issue is that the ARIA semantics for implied rows are not
 defined.
 
  I'm not sure I understand why ARIA would come into play at all when it
  comes to tables. Weren't tables accessible (I realize it has always
  been somewhat hard to convey them properly) long before ARIA existed?
 
 
  The issue is that, as far as I can tell, HTML 4.01 does not support
  implied rows:
  http://www.w3.org/TR/html401/struct/tables.html
  This is new to HTML5.

 No, HTML4 supported this; it probably didn't actually have any
 normative text around it, but browsers certainly supported having a
 rowspan go past the end of the explicit rows.



That's true.  Browsers supported this.  What I mean is that HTML4 didn't
have normative specification of this, but HTML5 does.

I guess what I wanted to clarify is that when a browser exposes a table to
the operating system's accessibility layer which screen readers use to
announce the content of a web page, the model of the table in the
accessibility layer should match the HTML5 table model.

Using the Accessibility Inspector tool on Mac and the Inspect tool on
Windows, I am seeing that browsers are currently not exposing the implied
rows.  Chrome, Firefox, Safari, and Internet Explorer are only exposing 6
rows for the example.

Using the example table HTML in Chrome for Mac, Chrome is not exposing to
Mac's accessibility hierarchy the 15 rows of the table, but only 6 rows;
there are only 6 AXRow children of the AXTable.  With Accessibility
Inspector I see that the AXCell corresponding to the first cell in the
first row has the AXColumnIndexRange attribute set to loc=0, len=3 and the
AXRowIndexRange attribute set to loc=0, len=10 (which are correct).
However, when I navigate to the Row 11, Column 1 cell, VoiceOver
announces row 2 of 6 Row 11, Column 1.

If I modify the example HTML to insert empty TR elements for each of the 9
implied rows:

table id=theTable border=1
  tbody
tr
  td rowspan=10 colspan=3These are the first 10 rows./td
/tr
tr/tr
tr/tr
tr/tr
tr/tr
tr/tr
tr/tr
tr/tr
tr/tr
tr/tr
  /tbody
  tbody
tr
  tdRow 11, Column 1/td
  tdRow 11, Column 2/td
  tdRow 11, Column 3/td
/tr
tr
  tdRow 12, Column 1/td
  tdRow 12, Column 2/td
  tdRow 12, Column 3/td
/tr
tr
  tdRow 13, Column 1/td
  tdRow 13, Column 2/td
  tdRow 13, Column 3/td
/tr
tr
  tdRow 14, Column 1/td
  tdRow 14, Column 2/td
  tdRow 14, Column 3/td
/tr
tr
  tdRow 15, Column 1/td
  tdRow 15, Column 2/td
  tdRow 15, Column 3/td
/tr
  /tbody
/table

.. then when I navigate to the Row 11, Column 1 cell, VoiceOver announces
row 11 of 15 Row 11, Column 1.  Also, Chrome then exposes 15 AXRow
children of the AXTable.

Using the original example in Internet Explorer 11, IE11 is exposing only 6
rows like Chrome, Safari, and Firefox; with the Windows SDK Inspect tool, I
see that the UIA_TableControlTypeId has the Grid.RowCount attribute set to
6.  Switching on Narrator, when I navigate to the Row 11, Column 1 cell,
Narrator announces Row 11, Column 1. Column 1 row 2 item.  Using the
modified HTML containing the 9 empty TR elements, the Grid.RowCount
attribute is set to 15 and Narrator will announce Row 11, Column 1. Column
1 row 11 item for the Row 11, Column 1 cell.

I am fairly certain that the model of the table that browsers expose to the
accessibility layer should match the HTML5 table model, but I wanted to
confirm.  Also, I wanted to ask what the ARIA semantics of the implied rows
are.

For example, suppose I have this (admittedly contrived):

table border=1
  tbody
tr aria-selected=true role=row
  td rowspan=5Spans 5/td
  tdnbsp;/td
  tdnbsp;/td
  tdnbsp;/td
/tr
tr aria-disabled=true role=presentation
  td rowspan=4Spans 4/td
  tdnbsp;/td
  tdnbsp;/td
/tr
tr aria-hidden=true role=row
  td rowspan=3Spans 3/td
  tdnbsp;/td
/tr
tr aria-busy=true role=presentation
  td rowspan=2Spans 2/td
/tr
  /tbody
/table

There is 1 implied row in this example, but what are the ARIA state
attributes of this implied row?  Is it selected and/or disabled and/or
hidden and/or busy?  What is the implied row's role?  There should probably
be a requirement that ARIA roles and state should be consistent.


Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-20 Thread Martin Janecke
Am 19.06.2013 um 20:53 schrieb Ian Hickson:

 [...]
 
 I've changed the spec to make figure applicable to your use case as 
 well, and added more text to explain various use cases and whether they 
 apply to figure. Let me know if the new text is still problematic for 
 your use case. I agree that it would be overly restrictive to limit 
 figure in the case you are presenting.

The new text (http://html5.org/r/7991) covers my use case very well. I have 
updated the markup generator to use figures with figcaption.


 (d) The img element has a (non-conforming) 
 generator-unable-to-provide-required-alt attribute whose value is the 
 empty string.^[3]
 
 Well, that is an option for any use case a markup generator runs into. 
 But it seems unattractive in all its verbosity to me.
 
 It's supposed to be a little unattractive, to discourage authors from 
 using it to silent validators complaining about their hand-written pages 
 (where they should just provide the fricking replacement text).
 
 Unfortunately -- although its verbosity is there to prevent any 
 misunderstanding for its use -- it might leave the impression that a 
 generator writing
 
 img src=... generator-unable-to-provide-required-alt=
 
 is not as good as a generator writing
 
 img src=... alt=an image
 
 Indeed. I don't know of a way to fix that. It's always going to be the 
 case that a generator doing the wrong thing in a way that is 
 machine-readably indistinguishable from the right thing is more likely to 
 look correct at a quick glance than a generator that is doing the wrong 
 thing in a machine-detectable way. I don't know what we can do about that.
 
 I'm open to suggestions.

I see. Unfortunately I do not have a better idea.

I have updated the markup generator to use 
generator-unable-to-provide-required-alt for the rare cases when it does not 
have a caption either.


 [...]
 
 In my case it is not applicable anyway: The converter generates markup 
 for instant display -- the output is not saved to be edited.
 
 Doesn't mean that it's not still bad that it's inaccessible, of course. :-)

Yep, a missing alt attribute is a missing alt attribute.

Thanks a lot
Martin

Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-19 Thread Martin Janecke
Am 17.06.2013 um 22:58 schrieb Ian Hickson:
 On Mon, 17 Jun 2013, Martin Janecke wrote:
 Am 17.06.2013 um 11:35 schrieb Steve Faulkner:
 
 the restriction on figure/figcaption is only in the whawtg spec not 
 the W3C HTML spec as it was not deemed a useful or practical 
 restriction when reviewed by the HTML WG.
 
 Sounds lovely, this would indeed solve my use case.
 
 Could you elaborate on what your use case and why it's not handled?

Yes. The use case begins with a markup generator that does not have a suitable 
alt-text for images. In my case it's actually a converter converting some 
light-weight markup to HTML, but I don't think the discussion should dive into 
the details too deep as it applies to other markup generators as well -- I 
named WYSIWYG editors and automatic digitizers as examples. It is an 
established fact that there are markup generators that don't have a suitable 
image description for the required alt attribute.^[1]

Without the required alt-attribute the generator's output is non-conforming or 
invalid markup.

It seems that (or at least markup generator creators seem to think that) a 
notable amount of users prefer generators that produce output which passes 
conformance checker tests over those which produce output that gets big red 
error marks. This can pressure markup generator creators to trick conformance 
checkers into thinking their output was conforming. Methods to achieve this 
include using bogus alt-texts or empty alt-texts, suggesting a purely 
presentational image when it's actually not.

These methods are in a way successful as conformance checkers today fall for 
the tricks. However, these tricks are considered harmful for accessibility. 
This motivated defining circumstances under which conformance checkers should 
silently ignore missing alt attributes.^[2] I'll now go through this list from 
the WHATWG spec to discuss where they cover and where they do not cover my use 
case, hopefully making my use case clearer in the process:

(a) The img element has a title attribute with a value that is not the empty 
string (also as described above).^[3]

A title attribute text is usually not available to the light-weight markup 
converter I maintain. This applies to other markup generators as well: An OCR 
digitizer does not find something equivalent to the typical implementation of 
the title attribute (i.e. a mouse-over text) in a book scan.

While my markup generator usually has access to a caption for an image that is 
immediately visible to anyone and which could theoretically be included as 
title attribute, that would mean redundant text as in the following example:

divimg src=tree.jpg title=Tree in Fantasia Tree in Fantasia/div

I've actually seen captions re-used for title or alt attributes like this quite 
often in the wild. I do not consider this a desirable output. Why should 
visually impaired persons have to read everything twice?

---

(b) The img element is in a figure element that …^[3] has a figcaption

So now to the question:

 I don't understand why figure as defined in the WHATWG spec doesn't work 
 for your case. What does the page look like?

The problem for markup generators is that they do not understand how the pages 
look like exactly. My light-weight markup converter has to use solutions that 
work in many cases, favorable and less favorable ones. Again, this applies to 
other markup generators as well. They don't understand the semantics implied in 
the text they handle. I'll provide two examples in pseudo code -- the task for 
the markup generator is to translate it into HTML. Example 1:

| The funny finch is a well known bird of Fantasia.
|
| [fig src=funny-finch.jpg]Fig 1.: Funny finch on a fig twig[/fig]
|
| It frolics freely in Fantasias famous forests.
|
| [fig src=feeding.jpg]Fig. 2.: Funny finch feeding a fledgling[/fig]
|
| The funny finch feeds on fruits and flies (fig. 2). Thanks to
| reforestation, the funny finch population has flourished in the past
| fourty years (fig. 3).
|
| [fig src=demographics.png]Fig. 3: Finch population 1970--2010[/fig]
|
| The funny finch is closely related to the freaky finches of Florida.

The figure element with a figcaption is perfectly suitable for the images in 
example 1. Let's look at example 2:

| The funny finch is a well known bird of Fantasia.
|
| [fig src=funny-finch.jpg]Funny finch on a fig twig[/fig]
|
| It frolics freely in Fantasias famous forests.
|
| [fig src=feeding.jpg]Funny finch feeding a fledgling[/fig]
|
| The funny finch feeds on fruits and flies, as shown in the photograph
| above. Thanks to reforestation, the funny finch population has
| flourished in the past fourty years, which the following diagram
| illustrates.
|
| [fig src=demographics.png]Finch population 1970--2010[/fig]
|
| The funny finch is closely related to the freaky finches of Florida.

Example 2 is conveying the same message as example 1. They almost look the 
same. However, while moving all the figures to the 

Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-19 Thread Ian Hickson
On Wed, 19 Jun 2013, Martin Janecke wrote:
 Am 17.06.2013 um 22:58 schrieb Ian Hickson:
  On Mon, 17 Jun 2013, Martin Janecke wrote:
  Am 17.06.2013 um 11:35 schrieb Steve Faulkner:
  
  the restriction on figure/figcaption is only in the whawtg spec not 
  the W3C HTML spec as it was not deemed a useful or practical 
  restriction when reviewed by the HTML WG.
  
  Sounds lovely, this would indeed solve my use case.
  
  Could you elaborate on what your use case and why it's not handled?
 
 Yes. The use case begins with a markup generator that does not have a 
 suitable alt-text for images. In my case it's actually a converter 
 converting some light-weight markup to HTML, but I don't think the 
 discussion should dive into the details too deep as it applies to other 
 markup generators as well -- I named WYSIWYG editors and automatic 
 digitizers as examples. It is an established fact that there are markup 
 generators that don't have a suitable image description for the required 
 alt attribute.^[1]

Agreed.


 Without the required alt-attribute the generator's output is 
 non-conforming or invalid markup.

More importantly, it's not accessible markup. That is why it's not 
conforming.


 It seems that (or at least markup generator creators seem to think that) 
 a notable amount of users prefer generators that produce output which 
 passes conformance checker tests over those which produce output that 
 gets big red error marks. This can pressure markup generator creators to 
 trick conformance checkers into thinking their output was conforming. 
 Methods to achieve this include using bogus alt-texts or empty 
 alt-texts, suggesting a purely presentational image when it's actually 
 not.

Indeed. That's why we added the non-conforming but validator-silencing 
attribute generator-unable-to-provide-required-alt.


 These methods are in a way successful as conformance checkers today fall 
 for the tricks. However, these tricks are considered harmful for 
 accessibility.

Right.


 (a) The img element has a title attribute with a value that is not the 
 empty string (also as described above).^[3]
 
 A title attribute text is usually not available to the light-weight 
 markup converter I maintain. This applies to other markup generators as 
 well: An OCR digitizer does not find something equivalent to the typical 
 implementation of the title attribute (i.e. a mouse-over text) in a book 
 scan.
 
 While my markup generator usually has access to a caption for an image 
 that is immediately visible to anyone and which could theoretically be 
 included as title attribute, that would mean redundant text as in the 
 following example:
 
 divimg src=tree.jpg title=Tree in Fantasia Tree in 
 Fantasia/div
 
 I've actually seen captions re-used for title or alt attributes like 
 this quite often in the wild. I do not consider this a desirable output. 
 Why should visually impaired persons have to read everything twice?

Indeed, this would not be good usage. That's what figure/figcaption is 
intended to avoid.


 (b) The img element is in a figure element that …^[3] has a figcaption
 
 So now to the question:
 
  I don't understand why figure as defined in the WHATWG spec doesn't 
  work for your case. What does the page look like?
 
 The problem for markup generators is that they do not understand how the 
 pages look like exactly. My light-weight markup converter has to use 
 solutions that work in many cases, favorable and less favorable ones. 
 Again, this applies to other markup generators as well. They don't 
 understand the semantics implied in the text they handle. I'll provide 
 two examples in pseudo code -- the task for the markup generator is to 
 translate it into HTML. Example 1:
 
 | The funny finch is a well known bird of Fantasia.
 |
 | [fig src=funny-finch.jpg]Fig 1.: Funny finch on a fig twig[/fig]
 |
 | It frolics freely in Fantasias famous forests.
 |
 | [fig src=feeding.jpg]Fig. 2.: Funny finch feeding a fledgling[/fig]
 |
 | The funny finch feeds on fruits and flies (fig. 2). Thanks to
 | reforestation, the funny finch population has flourished in the past
 | fourty years (fig. 3).
 |
 | [fig src=demographics.png]Fig. 3: Finch population 1970--2010[/fig]
 |
 | The funny finch is closely related to the freaky finches of Florida.
 
 The figure element with a figcaption is perfectly suitable for the 
 images in example 1.

Indeed, this, apart from the lacking alternative text, is a good structure 
to use for the Web.


 Let's look at example 2:
 
 | The funny finch is a well known bird of Fantasia.
 |
 | [fig src=funny-finch.jpg]Funny finch on a fig twig[/fig]
 |
 | It frolics freely in Fantasias famous forests.
 |
 | [fig src=feeding.jpg]Funny finch feeding a fledgling[/fig]
 |
 | The funny finch feeds on fruits and flies, as shown in the photograph
 | above. Thanks to reforestation, the funny finch population has
 | flourished in the past fourty years, which the following diagram
 | illustrates.

Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-18 Thread Steve Faulkner
Hi again,

forgot to mention that the requirements for conformance checkers
implementation requirements do differ due to differing the author
requirement.

so in W3C HTML validator:

this results in an error

img title=poot

In validator.nu it doesn't



--

Regards

SteveF
HTML 5.1 http://www.w3.org/html/wg/drafts/html/master/


On 18 June 2013 12:02, Steve Faulkner faulkner.st...@gmail.com wrote:

 Hi Jonas


 I.e. is the difference between the W3C and WHATWG versions here just a
 difference in authoring requirements? Or also a difference in
 implementations requirements?


 authoring requirements only

 --

 Regards

 SteveF
 HTML 5.1 http://www.w3.org/html/wg/drafts/html/master/


 On 18 June 2013 11:57, Jonas Sicking jo...@sicking.cc wrote:

 On Mon, Jun 17, 2013 at 11:35 AM, Steve Faulkner
 faulkner.st...@gmail.com wrote:
 
  Am 07.06.2013 um 23:13 schrieb Ian Hickson:
 
   img src=... title=image
  
   If you have a caption from the user (as opposed to replacement text),
  then
   this is a perfectly valid option. It's as valid as the figure
 case, and
   means the same thing.
  
   [...]
 
 
 
  the above statement is bad advice:
 
  browsers map title to the accessible name in accessibility APIs when
 alt is
  absent, so
 
  in the following cases:
 
  img src=... title=poot
 
  img src=... alt=poot
 
  the accessible name is 'poot'.
 
  it is only when there is an accessible name already provided that title
 is
  used as an accessible description:
 
  img src=... alt=poot title=description of poot
 
  Also note that as per the W3C HTML spec, use of the title without an
 alt is
  non conforming[1] as it does not represent a caption for an image and as
  you point out is hidden from a variety of users due to a long and
  consistent history of poor implementation.

 Steve,

 Does the spec still require that if an implementation encounters an
 image with a title but without an alt to present that to users with
 and without AT in a useful way?

 I.e. is the difference between the W3C and WHATWG versions here just a
 difference in authoring requirements? Or also a difference in
 implementations requirements?

 / Jonas





Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-17 Thread Martin Janecke
Am 17.06.2013 um 11:35 schrieb Steve Faulkner:

 Is there a chance that use of aria-labelledby is added to the spec
 (4.8.1.1.13 Guidance for markup generators, 4.8.1.1.14 Guidance for
 conformance checkers) as alternative to figure with figcaption or the title
 attribute? I'd like to suggest this. It does make equally sense in my
 opinion and I think I've described the use case in this thread:
 
 -- markup generator has no alt-text for an image
 -- image has a caption that should be immediately visible and possibly
 contain markup = no title attribute
 
 
 
 
 -- it is not known whether the image can be moved somewhere else in the
 document = no figure with figcaption
 
 
 the restriction on figure/figcaption is only in the whawtg spec not the W3C
 HTML spec as it was not deemed a useful or practical restriction when
 reviewed by the HTML WG.

Sounds lovely, this would indeed solve my use case.

I don't know how to asses that the restriction is dropped in a W3C draft but 
still included in the WHATWG version, though. Is this consensus and likely to 
become standard or still very uncertain territory?

Regards
Martin



Re: [whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-17 Thread Ian Hickson

On Mon, 17 Jun 2013, Martin Janecke wrote:
 Am 17.06.2013 um 11:35 schrieb Steve Faulkner:
  
  the restriction on figure/figcaption is only in the whawtg spec not 
  the W3C HTML spec as it was not deemed a useful or practical 
  restriction when reviewed by the HTML WG.
 
 Sounds lovely, this would indeed solve my use case.

Could you elaborate on what your use case and why it's not handled?

I don't understand why figure as defined in the WHATWG spec doesn't work 
for your case. What does the page look like?


 I don't know how to assess that the restriction is dropped in a W3C 
 draft but still included in the WHATWG version, though. Is this 
 consensus and likely to become standard or still very uncertain 
 territory?

The W3C spec is a fork of the WHATWG standard. I can't speak for what 
they're doing (and this would be the wrong list to discuss it, anyway). As 
far as the WHATWG spec goes, we try to base decisions on use cases.

For figure, the idea is that it should be reasonable to style figure 
with something like:

   figure { float: right; }

If we don't say that figure's contents can be moved in this way, then 
that becomes much less viable.

If what you want is just an inline image followed by some text, though, 
you don't need figure or title= -- you can just put in the image and 
the text, as in:

   img src=the image !-- FIXME: replacement text is missing --
   pMore text...

It's hard to know without looking at specific examples exactly what the 
optimal markup should be, though.


On Mon, 17 Jun 2013, Steve Faulkner wrote:
  Am 07.06.2013 um 23:13 schrieb Ian Hickson:
  
   img src=... title=image
  
   If you have a caption from the user (as opposed to replacement 
   text), then this is a perfectly valid option. It's as valid as the 
   figure case, and means the same thing.
 
 the above statement is bad advice:
 
 browsers map title to the accessible name in accessibility APIs when alt 
 is absent, so--

...so the browsers are buggy. This is not unusual. File bugs. :-) Indeed, 
since you've demonstrated yourself able to write code, you could just go 
and fix the bugs directly. :-)

Writing specs for the lowest-common-denominator is not the way we'll get a 
usable, accessible Web. We might sometimes be forced to when there are 
compat requirements with massively deployed content that Web author are 
relying on that prevent certain behaviours from being fixed, but this 
really doesn't apply in the case of ATs, since the vast majority of 
authors have never tested how their pages work in ATs.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


[whatwg] @aria-labelledby | Re: @generator-unable-to-provide-required-alt, figure with figcaption

2013-06-16 Thread Martin Janecke
Am 07.06.2013 um 23:13 schrieb Ian Hickson:

 img src=... title=image
 
 If you have a caption from the user (as opposed to replacement text), then 
 this is a perfectly valid option. It's as valid as the figure case, and 
 means the same thing.
 
 [...]
 
 I don't know whether someones writes something like which the 
 following figure illustrates instead of which is illustrated by fig. 
 3 somewhere in the text above a figure. But this difference decides 
 whether using the figure element conforms with the spec. So a code 
 generator can only use something which is structurally and optically 
 identical to the figure element but does not have the theoretical 
 requirement to be movable to a different place in the document, e.g.:
 
 div class=figure
 img src=...
 div class=caption.../div
 /div
 
 And here conformance checkers will complain about the missing 
 alt-attribute again ...
 
 If you use img src=... title=... it'll work (and be correct, 
 insofar as anything missing alt text can be correct).

While the title attribute might be as good as the figcaption or a div-caption 
element in meaning, it differs in practice, as the element can include further 
markup, the attribute cannot. The title attribute is displayed as mouse-over 
text in most browsers whereas the figcaption is usually immediately readable to 
anyone, just as a caption for a picture in a book.

I am aware that one could use JavaScript to make the text from the title 
attribute immediately visible as well. But this would require further 
technology on the reader’s side (JS) and complicate things more than justified 
for the cause, in my opinion.

What my markup generator actually does with captioned images is this:

meta name=generator content=generator-name
…
div class=figure
img src=... aria-labelledby=caption-x
div id=caption-x class=caption.../div
/div

(see also 
http://www.w3.org/WAI/GL/wiki/Using_aria-labelledby_to_provide_a_text_alternative_that_serves_the_equivalent_purpose)

Is there a chance that use of aria-labelledby is added to the spec (4.8.1.1.13 
Guidance for markup generators, 4.8.1.1.14 Guidance for conformance checkers) 
as alternative to figure with figcaption or the title attribute? I'd like to 
suggest this. It does make equally sense in my opinion and I think I've 
described the use case in this thread:

-- markup generator has no alt-text for an image
-- image has a caption that should be immediately visible and possibly contain 
markup = no title attribute
-- it is not known whether the image can be moved somewhere else in the 
document = no figure with figcaption
-- markup generator should not be pressured to use bogus alt-text to calm 
easily scared customers using validators

E.g. OCR book digitizers or markup editors strictly following the WYSIWYG 
paradigm.

Regards
Martin

(PS: Also, thank you and Jukka for your comments that I've not replied to.)

Re: [whatwg] ARIA

2009-08-21 Thread Ian Hickson
On Thu, 28 Feb 2008, Dave Hodder wrote:
 
 The current HTML 5 draft doesn't mention ARIA anywhere.  Perhaps it 
 should clarify the relationship (or non-relationship as it is at 
 present), even if it's only a brief mention in section 1.1.

There's a section on it now.


On Fri, 29 Feb 2008, James Graham wrote:
 
 Unfortunately a brief mention is insufficient as aria functionality 
 overlaps substantially with HTML functionality and so processing 
 requirements for aria-in-html need to be carefully considered (so we can 
 answer questions like how does div aria-role='heading' affect the 
 outline algorithm). This has not yet happened.

The answer is now it does not. ARIA doesn't appear to have enough 
expressive power to be affected by the outline algorithm much, either 
(it's intended for authors, so there's no way to express the nested 
implied sections with it).


On Fri, 7 Mar 2008, Simon Pieters wrote:
 
 I would guess that it's the AT that would be the one to implement the 
 outline algorithm. So if div role=heading is reported the same way as 
 h1 is, then div role=heading does affect the document outline in the 
 AT the same way as h1 affects the document outline.
 
 Otherwise, what is the AT supposed to do with the heading if not put 
 it in the list of headings? Surprise the user when he stumbles upon it 
 and say Oh snap, that's a heading right there! Didn't see that one 
 coming.? :-)
 
 (BTW, I would be fine with solving this particular issue by dropping 
 heading from ARIA -- I don't see what problem it is trying to solve 
 that h1 doesn't.)

I don't really see how to solve this issue from HTML5's side.


On Fri, 7 Mar 2008, Aaron Leventhal wrote:
 
 [...] On the other hand for the landmark roles which specify semantics 
 but not behavior, I would agree that sticking with HTML elements is a 
 better approach. Even if there is associated behavior for them, such as 
 a hotkey, they will degrade well to older user agents.

Should I just say that you can't use these landmark roles on elements from 
HTML5 then?


On Fri, 7 Mar 2008, James Graham wrote:
 
 OK, but we still need to specify what happens when they are used. To 
 take the aria-role=heading example again, I believe it's a requirement 
 that a page that uses that has the same outline structure when viewed 
 using a tool that uses an accessibility API as it does when viewed 
 through a tool that accesses the DOM directly.

I don't know how to achieve this.


On Tue, 11 Mar 2008, Aaron Leventhal wrote:

 In general these are great questions. The question as I understand it, 
 should the spec spell out which role  properties you get naturally with 
 an HTML element, so an author knows if they even need to override them 
 with ARIA in the first place?

I've done that.


  Therefore
  
  input type=checkbox role=button

This is non-conforming now, but will result in the element appearing to AT 
users as a regular button. (And I guess the user gets really confused if 
they try to activate it.)

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


Re: [whatwg] ARIA

2008-03-11 Thread Aaron Leventhal

Jim Jewett wrote:
I think the question is more about how the HTML elements themselves 
interact.

For example,tr  elements should probably be interpreted by default
astr aria-role=row  because that is part of the semantics of tr.

In some cases, the default mapping will also depend on other
attributes.  (input type=checkbox  vsinput type=reset)

Ideally the specification would give a complete list of such defaults,
because otherwise there will be at least a few disagreements.  For
example, it looks as thoughol  should *not* have aria-role=list, but
that isn't something I would have guessed from the names.
   
In general these are great questions. The question as I understand it, 
should the spec spell out which role  properties you get naturally with 
an HTML element, so an author knows if they even need to override them 
with ARIA in the first place?


Do you mind asking this question on the wai-xtech list/ You can get 
subscribed to on an individual request basis -- just email me and I'll 
help you get on it. If you don't want to spend a lot of time, then 
please at least send your feedback to [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED]



The next question is what to do when an author explicitly uses an aria
attribute other than the default.  For example, it is fairly common to
hook javascript to a checkbox so that it acts like a command button.
Therefore

input type=checkbox aria-role=button

should probably be treated as having both roles, but
aria-role=presentation (or even a parent with
aria-role=childrenArePresentational) should probably remove the
default aria-roles
   
This one is simpler. ARIA properties override the built-in semantics. 
You can use |role| on any element, such as input and it will override 
the natural role of the element. Therefore input type=checkbox 
role=button will be reported to assistive technologies as a button. 
The same thing applies to properties. ARIA properties have the last say 
when they conflict with the natural properties of an element. Overriding 
one property with ARIA does not affect the other properties on an 
element. These simple rules were found to be the most effective. There 
are a lot of sensible concerns. I've drafted a FAQ here with some more 
info, which I think addresses most concerns: 
http://developer.mozilla.org/en/docs/ARIA:_Accessible_Rich_Internet_Applications/Relationship_to_HTML_FAQ
A Best Practices Guide and Primer are under development for authors. I 
am also working an implementors guide for user agents. Let me know if 
you want to see that.


As aside: I noticed you refer to role as aria-role. The role attribute 
is the one ARIA attribute that doesn't need aria- as a prefix. It's a 
special attribute that is intended to address more than accessibility -- 
it's been argued already and unlikely to change because of currently 
shipping software.


- Aaron



Re: [whatwg] ARIA

2008-03-07 Thread James Graham

Aaron Leventhal wrote:

James Graham wrote:

Dave Hodder wrote:
The current HTML 5 draft doesn't mention ARIA anywhere.  Perhaps it 
should clarify the relationship (or non-relationship as it is at 
present), even if it's only a brief mention in section 1.1.


Unfortunately a brief mention is insufficient as aria functionality
overlaps substantially with HTML functionality and so processing
requirements for aria-in-html need to be carefully considered (so we can
answer questions like how does div aria-role='heading' affect the
outline algorithm). This has not yet happened.


Okay, so I can speak to this. I developed first browser implementation 
of ARIA -- the one in Firefox.


ARIA doesn't really overlap with HTML, because ARIA only reports what a 
JS developer is using elements for.
So ARIA semantics should not affect  behavior. Any code for dealing with 
ARIA markup should be strictly in the accessibility API support code 
(MSAA/IAccessible2/ATK/AT-SPI/UI Automation/Universal Access).


This seems like a poor idea from the point of view of authors actually 
using the markup correctly as they will have to use special 
accessibility-API aware tools to inspect the effects of their aria-* markup.



A div need not affect the outline algorithm, etc. any more than a div does.
Thus it should not be complicated to mention ARIA in the spec.


So, given markup like:

section
h1foo/h1
div aria-role='heading'bar/div
/section

would AT questioned on what the headings and subheadings of the 
section are  report on the h1 alone (as specified by the current 
outline algorithm)?


Similarly, if I have a table like:

trth id=a1/thth id=b2/th/tr
trtdA/tdtd aria-describedby=aB/td/tr

would AT report the cell headings for B as 2, not 1, despite the 
aria-describedby attribute?


If the aria-* attributes overrule the HTML-native algorithms then aria 
creates an odd (and IMHO unpleasant) situation in which a document's 
semantics depend on the type of client being used to view it.


What's the easiest way to test existing aria implementations on 
Mac/Linux (I don't have access to a Windows box)?


--
Mixed up signals
Bullet train
People snuffed out in the brutal rain
--Conner Oberst


Re: [whatwg] ARIA

2008-03-07 Thread James Graham

Aaron Leventhal wrote:

On the other hand for the landmark roles which specify semantics but 
not behavior, I would agree that sticking with HTML elements is a better 
approach. Even if there is associated behavior for them, such as a 
hotkey, they will degrade well to older user agents.


OK, but we still need to specify what happens when they are used. To take the 
aria-role=heading example again, I believe it's a requirement that a page that 
uses that has the same outline structure when viewed using a tool that uses an 
accessibility API as it does when viewed through a tool that accesses the DOM 
directly.


--
Eternity's a terrible thought. I mean, where's it all going to end?
 -- Tom Stoppard, Rosencrantz and Guildenstern are Dead


Re: [whatwg] ARIA

2008-03-07 Thread John Foliot
James Graham wrote:
 
 What's the easiest way to test existing aria implementations on
 Mac/Linux (I don't have access to a Windows box)?


Firefox 3 + Accessibility Extensions for Mozilla
http://cita.rehab.uiuc.edu/software/mozilla/installation.php

JF



Re: [whatwg] ARIA

2008-03-07 Thread Charles McCathieNevile

On Fri, 07 Mar 2008 10:56:22 -0800, John Foliot [EMAIL PROTECTED] wrote:


James Graham wrote:


What's the easiest way to test existing aria implementations on
Mac/Linux (I don't have access to a Windows box)?



Firefox 3 + Accessibility Extensions for Mozilla
http://cita.rehab.uiuc.edu/software/mozilla/installation.php


On Mac, Opera 9.5 beta - latest weekly at http://my.opera.com/desktopteam

With VoiceOver, you can set it to show what it is reading out as a
transparent box on the screen. I find that very useful for testing.

/me reaches across and slaps john with a wet fish, for not mentioning
Opera ;)

cheers

Chaals

--
Charles McCathieNevile  Opera Software, Standards Group
 je parle français -- hablo español -- jeg lærer norsk
http://my.opera.com/chaals   Try Opera 9.5: http://snapshot.opera.com


Re: [whatwg] ARIA

2008-03-06 Thread Aaron Leventhal

James Graham wrote:

Dave Hodder wrote:
The current HTML 5 draft doesn't mention ARIA anywhere.  Perhaps it 
should clarify the relationship (or non-relationship as it is at 
present), even if it's only a brief mention in section 1.1.


Unfortunately a brief mention is insufficient as aria functionality
overlaps substantially with HTML functionality and so processing
requirements for aria-in-html need to be carefully considered (so we can
answer questions like how does div aria-role='heading' affect the
outline algorithm). This has not yet happened.


Okay, so I can speak to this. I developed first browser implementation 
of ARIA -- the one in Firefox.


ARIA doesn't really overlap with HTML, because ARIA only reports what a 
JS developer is using elements for.
So ARIA semantics should not affect  behavior. Any code for dealing with 
ARIA markup should be strictly in the accessibility API support code 
(MSAA/IAccessible2/ATK/AT-SPI/UI Automation/Universal Access).


A div need not affect the outline algorithm, etc. any more than a div does.
Thus it should not be complicated to mention ARIA in the spec.

- Aaron




Re: [whatwg] ARIA

2008-02-29 Thread James Graham

Dave Hodder wrote:
The current HTML 5 draft doesn't mention ARIA anywhere.  Perhaps it 
should clarify the relationship (or non-relationship as it is at 
present), even if it's only a brief mention in section 1.1.


Unfortunately a brief mention is insufficient as aria functionality
overlaps substantially with HTML functionality and so processing
requirements for aria-in-html need to be carefully considered (so we can
answer questions like how does div aria-role='heading' affect the
outline algorithm). This has not yet happened.


--
Mixed up signals
Bullet train
People snuffed out in the brutal rain
--Conner Oberst



[whatwg] ARIA (was: Re: Thoughts on HTML 5)

2008-02-28 Thread Dave Hodder

[EMAIL PROTECTED] wrote:

snip


As for my suggestion of reldata, my intent is to use the attribute for any type of data 
related to the element. The role attribute is intended to be used (from my 
understanding) to designate what role the element is playing on the page. This is not an 
appropriate place to put extra data that isn't necessary for the rendering or understanding of the 
element. My thought is doing something like this:

div id=whatever reldata={clicks:1,track:true}

The data format could be whatever someone wants, plain text, structured text, 
JSON...whatever you need. The point is to have a common place to dump extra but 
related data that isn't important to the understanding of the element. I often 
use custom attributes for this now, but it would be nice to have an official 
attribute for this purpose.


It sounds like the two attributes would be complementary, with role 
defining the tag as a whateverwidget, and reldata describing the 
initial state and properties of the widget.


I don't know if you've seen the recent Accessible Rich Internet 
Applications http://www.w3.org/TR/wai-aria/ draft?  (There's also a 
primer at http://www.w3.org/TR/wai-aria-primer/.)  It describes a 
number of standard states that can be added to custom controls.  Rather 
than potentially fitting multiple values into a reldata attribute, it 
defines a host of attributes beginning with aria-.  Example:


span role=checkbox aria-checked=trueFoo/span

I believe a number of script libraries (Dojo for example) plan on 
supporting ARIA.  Firefox has some ARIA support already.


The current HTML 5 draft doesn't mention ARIA anywhere.  Perhaps it 
should clarify the relationship (or non-relationship as it is at 
present), even if it's only a brief mention in section 1.1.


Regards,

Dave