Child pages
  • title Attribute in ARIA and non-ARIA Environments, with Screen Readers

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h2. Context

* tested the "standalone lightbox", that is:  ".../src/webapp/fluid-components/html/Lightbox.html" (revision 4739).
* tested two title based configurations:
** Lightbox.html as is, i.e. no title attributes.
** Added "title" attribute to:
*** the lightbox container <div> (id="gallery:::gallery-thumbs:::") \-\- value = "Lightbox",
*** each thumbnail <div> (id="gallery:::gallery-thumbs:::lightbox-cell:_n_:") \-\- value = "Thumbnail of _Fruit_"
* tested three browsers:
** FF3 (Minefield 3.0b5pre 2008031405)
** FF2
** IE7
* tested two screen readers (in non-browse mode/virtual pc cursor off mode):
** WindowEyes
** JAWS
* tested four actions:
** tab to the lightbox.
** move from thumbnail to thumbnail using arrow keys (keyboard navigation)
** keyboard based "drag-and-drop"
** mouse hover over:
*** thumbnail image
*** thumbnail whitespace
*** thumbnail link
* Temporarily serving from:
** No title attributes: &nbsp;[http://142.150.154.170/TitleAriaTests/NoTitles/fluid-0.2/fluid-components/html/Lightbox.html]
** title attributes: &nbsp;[http://142.150.154.170/TitleAriaTests/Titles/fluid-0.2/fluid-components/html/Lightbox.html]

One variable that was not tested was&nbsp;running Windows accessible Inspector application in parallel with the browsers. &nbsp;When that is done, IE7 and/or the screen reader acquires more information about what has focus, etc., and tends to give a better experience. It is unlikely that the average screen reader user will run Inspector in tandem with their screen reader; however, our doing so may provide clues as to how to render thumbnails in the lightbox for these types of users.

h2. WindowEyes

Note:  when the mouse cursor changes, WindowEyes speaks to indicate the new cursor. For example, when it changes to an I-beam, WindowEyes says, "I-beam". The mouse cursor changes to a pointing hand when over a link; in this case WindowEyes says, "Pointer 32649, undefined".  This speech is repeated a lot in the following table.

{table:title="WindowEyes Result"| border=1| align=center}
    {tbody}
    {tr}
        {th}Browser{th}{th}Action{th}{th}No Title Attribute{th}{th}Title Attribute{th}
    {tr}
    {tr}
      {td:rowspan=6}*FF3 (Minefield)*{td}
      {td}tab to lightbox{td}
      {td}"_Fruit_, cell"{td}
      {td}"Lightbox, _Fruit_, cell, Thumbnail of _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_, cell"{td}
      {td}"Lightbox, _Fruit_, cell, Thumbnail of _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}Silence{td}
      {td}Silence{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}"Pointer 32649, undefined"{td}
      {td}"Pointer 32649, undefined";
Visually, "Thumbnail of _Fruit_" shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}"Arrow", if mouse cursor changes to arrow; silence otherwise.{td}
      {td}"Arrow", if mouse cursor changes to arrow; silence otherwise;
Visually,&nbsp;"Thumbnail of _Fruit_" shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}"_Fruit_, Pointer 32649, undefined"{td}
      {td}"_Fruit_, Pointer 32649, undefined";
Visually, "Thumbnail of _Fruit_" shows as a tool tip.{td}
    {tr}
    {tr}
        {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
    {tr}
    {tr}
      {td:rowspan=6}*FF2*{td}
      {td}tab to lightbox{td}
      {td}"_Fruit_, cell"{td}
      {td}"Lightbox, _Fruit_, cell, Thumbnail of _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_, cell"{td}
      {td}"Lightbox, _Fruit_, cell, Thumbnail of _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}Silence{td}
      {td}Silence{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}"Pointer 32649, undefined"{td}
      {td}"Context menu, Pointer 32649, undefined...menu closed";
Visually, "Thumbnail of _Fruit_ shows as a tool tip.
Note that WindowEyes interprets a tooltip popup as a menu.{td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}"Arrow", if mouse cursor changes to arrow; silence otherwise.{td}
      {td}"Context menu, Arrow, ...menu closed", if mouse cursor changes to arrow; "Context menu, ...menu closed" otherwise;
Visually,&nbsp;"Thumbnail of _Fruit" shows as a tool tip.
Note that WindowEyes&nbsp;interprets a tooltip popup as a menu.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}"_Fruit_, Pointer 32649, undefined"{td}
      {td}"_Fruit_, context menu, Pointer 32649, undefined, ...menu closed";
Visually, "Thumbnail of _Fruit_ shows as a tool tip.
Note that WindowEyes&nbsp;interprets a tooltip popup as a menu.{td}
    {tr}
    {tr}
        {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
    {tr}
    {tr}
      {td:rowspan=6}*IE7*{td}
      {td}tab to lightbox{td}
      {td}"_Fruit_, grouping object"{td}
      {td}"Thumbnail of&nbsp;_Fruit_, grouping object"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_,&nbsp;grouping object"{td}
      {td}"Thumbnail of _Fruit_, grouping object"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}"_Fruit_,&nbsp;grouping object", where&nbsp;_Fruit_, is the name of the thumbnail being moved.{td}
      {td}"Thumbnail of _Fruit_,&nbsp;grouping object", where&nbsp;_Fruit_, is the name of the thumbnail being moved.{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}"_Fruit_, Pointer 32649, undefined"
Note: &nbsp;only "_Fruit_" if mouse cursor does not change;
Visually, "_Fruit_" shows as a tool tip.{td}
      {td}"_Fruit_, Pointer 32649, undefined";
Visually, "_Fruit_ shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}"Arrow", if mouse cursor changes to arrow; silence otherwise.{td}
      {td}"Thumbnail of _Fruit_, Arrow", if mouse cursor changes to arrow; "Thumbnail of _Fruit_", otherwise;
Visually,&nbsp;"Thumbnail of _Fruit_ shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}"_Fruit_, Pointer 32649, undefined"{td}
      {td}"_Fruit_, Thumbnail of _Fruit_, Pointer 32649, undefined";
Visually, "Thumbnail of _Fruit_ shows as a tool tip.{td}
    {tr}
  {tbody}
{table}

h2. JAWS

In terms of moving thumbnails using the keyboard, only cntl-left and cntl-right arrows worked reliably.  Cntl-up and cntl-down was intercepted by JAWS, and resulted in the opening of the link (inside a thumbnail) in a new tab, in all three browsers.

{table:border=1| align=center| title="JAWS Results"}
  {tbody}
    {tr}
      {th}Browser{th}
      {th}Action{th}
      {th}No Title Attribute{th}
      {th}Title Attribute{th}
    {tr}
    {tr}
      {td:rowspan=6}*FF3 (Minefield)*{td}
      {td}tab to lightbox{td}
      {td}"Tab, Table, _Fruit_"{td}
      {td}"Tab, Table, _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_"{td}
      {td}"_Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}"Blank" on the first move, thereafter "_Fruit_, repeatedly", where _Fruit_
is the name of the fruit immediately to the left or right (depending on
direction of movement) of the moving item after the first move.
&nbsp;Example: &nbsp;"Blank, Kiwi, Kiwi, ..."{td}
      {td}"Blank" on the first move, thereafter "_Fruit_, repeatedly", where _Fruit_
is the name of the fruit immediately to the left or right (depending on
direction of movement) of the moving item after the first move.
&nbsp;Example: &nbsp;"Blank, Kiwi, Kiwi, ..."{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}Silence{td}
      {td}Silence;
Visually, "Thumbnail of _Fruit_" shows as tooltip.
      {td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}Silence{td}
      {td}Silence;
Visually, "Thumbnail of _Fruit_" shows as tooltip.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}Silence
      {td}
      {td}Silence;
Visually, "Thumbnail of _Fruit_" shows as tooltip.{td}
    {tr}
    {tr}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
    {tr}
    {tr}
      {td:rowspan=6}*FF2*{td}
      {td}tab to lightbox{td}
      {td}"Tab, Table, _Fruit_"{td}
      {td}"Tab, Table, _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_,"{td}
      {td}_Fruit_, _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}"Blank" on the first move, thereafter "_Fruit_, repeatedly", where _Fruit_
is the name of the fruit immediately to the left or right (depending on
direction of movement) of the moving item after the first move.
&nbsp;Example: &nbsp;"Blank, Kiwi, Kiwi, ..."{td}
      {td}"Blank" on the first move, thereafter "_Fruit_, repeatedly", where _Fruit_
is the name of the fruit immediately to the left or right (depending on
direction of movement) of the moving item after the first move.
&nbsp;Example: &nbsp;"Blank, Kiwi, Kiwi, ..."{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}Silence
      {td}
      {td}"Menu, ...leaving menus";
Visually, "Thumbnail of _Fruit_" shows as tooltip.
Note: JAWS interprets the tooltip popup as a menu.
      {td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}Silence{td}
      {td}"Menu, ...leaving menus";
Visually, "Thumbnail of _Fruit_" shows as tooltip.
Note: JAWS&nbsp;interprets the tooltip popup as a menu.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}Silence{td}
      {td}"Menu, ...leaving menus";
Visually, "Thumbnail of _Fruit_" shows as tooltip.
Note: JAWS&nbsp;interprets the tooltip popup as a menu.{td}
    {tr}
    {tr}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
      {td}&nbsp;{td}
    {tr}
    {tr}
      {td:rowspan=6}*IE7*{td}
      {td}tab to lightbox{td}
      {td}"Tab, _Fruit_,"
Note: once, it reads the entire list of thumbnails.{td}
      {td}"Tab, Thumbnail of&nbsp;_Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard navigation{td}
      {td}"_Fruit_"{td}
      {td}"Thumbnail of _Fruit_"{td}
    {tr}
    {tr}
      {td}keyboard DnD{td}
      {td}"View, _Fruit_&nbsp;that is moving, _Fruit_ just moved past"
Note: &nbsp;upon releasing the cntl key, "_Fruit_" that was moved.
      {td}
      {td}"View, _Fruit_&nbsp;that is moving, _Fruit_ just moved past"
Note: &nbsp;upon releasing the cntl key, "_Fruit_" that was moved.{td}
    {tr}
    {tr}
      {td}hover over image{td}
      {td}Silence;
Visually, "_Fruit_" is shown as a toolitp.
      {td}
      {td}Silence;
Visually, "_Fruit_" shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over whitespace{td}
      {td}Silence.
      {td}
      {td}Silence;
Visually,&nbsp;"Thumbnail of _Fruit_" shows as a tool tip.{td}
    {tr}
    {tr}
      {td}hover over&nbsp;link{td}
      {td}Silence.
      {td}
      {td}Silence;
Visually, "Thumbnail of _Fruit_" shows as a tool tip.{td}
    {tr}
  {tbody}
{table}

h2. What should a screen reader say?

It's not clear what the advantage of having a title attribute is.  But, more importantly, it's not clear what the user experience _should be_ for the lightbox.

A lightbox is a device for displaying and reorganizing thumbnail images.  Screen reader users should be able to navigate among the thumbnails and move them about.  The keyboard support in the lightbox/reorderer already allows for this, but what should be the audio feedback?  Here are some brain storming ideas:

* As the user navigates about the thumbnails, announce the name of the thumbnail they are currently on (i.e., the one that has focus).
* Inform users of the existence of the hyperlink in the thumbnails.
* Given the reordering functionality of the lightbox, allow querying of the thumbnails immediately surrounding the  currently foucused one:  What is immediately to the left, right, above, below, and at the four corners?
* Users should be allowed to ask for the current order of the images.  If the list is long, they should be allowed to interrupt the speech once they have heard enough to know what they were seeking.
** it might be useful to allow for a list of what follows from the currently focussed thumbnail -- immediately to the right, going forward.
** in a similar vein, allow for a listing of what precedes the currently foucssed thumbnail -- immediately to the left, proceeding backwards.
* as users move an image, some verbal feedback of the new ordering; for example:
** if moving left, "Kiwi moved left, now left of Mangosteen".
** if moving right, "Lemon moved right, now right of Banana".
** if at beginning, "Kiwano moved left, now at beginning, left of Kumquat".
** if at end, "Dragonfruit moved left, now at end, right of Strawberry".