Response to your comments on WAI-ARIA 1.0 Authoring Practices

Dear Todd Kloots:

Thank you for your comments on the 16 September 2010 Working Draft of
WAI-ARIA 1.0 Authoring Practices
(http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/). The Protocols
and Formats Working Group has reviewed all comments received on the draft.
We would like to know whether we have understood your comments correctly
and whether you are satisfied with our resolutions.

Please review our resolutions for the following comments, and reply to us
by 8 March 2013 to say whether you accept them or to discuss additional
concerns you have with our response. If we do not hear from you by that
date, we will mark your comment as "no response" and close it. If you need
more time to consider your acknowledgement, please let us know. You can
respond in the following ways:

* If you have a W3C account, we request that you respond online at
http://www.w3.org/WAI/PF/comments/acknowledge?document_version_id=10;

* Else, by email to public-pfwg-comments@w3.org (be sure to reference our
comment ID so we can track your response). Note that this list is publicly
archived.

Please see below for the text of comments that you submitted and our
resolutions to your comments. Each comment includes a link to the archived
copy of your original comment on
http://lists.w3.org/Archives/Public/public-pfwg-comments/, and may also
include links to the relevant changes in the WAI-ARIA 1.0 Authoring
Practices editors' draft at http://www.w3.org/WAI/PF/aria-practices/.

Note that if you still strongly disagree with our resolution on an issue,
you have the opportunity to file a formal objection (according to 3.3.2 of
the W3C Process, at
http://www.w3.org/2005/10/Process-20051014/policies.html#WGArchiveMinorityViews)
to public-pfwg-comments@w3.org. Formal objections will be reviewed with the
Director before the document is finalized as a Working Group Note, unless
we can come to agreement with you on a resolution in advance of the
meeting.

Thank you for your time reviewing and sending comments. Though we cannot
always do exactly what each commenter requests, all of the comments are
valuable to the development of WAI-ARIA 1.0 Authoring Practices.

Regards,

Janina Sajka, PFWG Chair
Michael Cooper, PFWG Staff Contact


Comment 343: Toolbar example incorrect
Date: 2010-10-28
Archived at: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010OctDec/0013.html
Relates to: WAI-ARIA 1.0 Authoring Practices - 2.  General Steps for Building an Accessible Widget with WAI-ARIA <http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#accessiblewidget>
Status: Alternate action taken

-------------
Your comment:
-------------
In the first section titled "General Steps for Building an Accessible
Widget with WAI-ARIA" there is sample toolbar markup which sets the
tabindex of the toolbar to 0, and the tabindex of the  first button to 0 as
well.  Assuming this is an example of using the roving tabindex technique,
the  toolbar shouldn't have a tabindex set, right?  It should just be the
first descendant.   Additionally, the copy below the HTML example says "By
avoiding tabindex on the  toolbar and setting tabindex=0 on the first
button...".  So based on that it seems like the  tabindex on the toolbar
should be removed. 

<div role="toolbar" tabindex="0" id="customToolbar" 
      onkeydown="return optionKeyEvent(event);"
      onkeypress="return optionKeyEvent(event);"
      onblur="hideFocus()"
      onfocus="showFocus()"
      > 
      <img src="img/btn1.gif" tabindex="0" title="Home" 
           role="button" id="b1" alt="Home" 
           onClick="updateText('Home was invoked');">
      <img src="img/btn2.gif" tabindex="-1" title="Refresh" 
           role="button" id="b2" alt="Refresh" 
           onClick="updateText('Refresh was invoked');">
     <img src="img/btn3.gif" tabindex="-1" title="Help" 
           role="button" id="b3" alt="Help" 
           onClick="updateText('Help was invoked');"> 
</div>

--------------------------------
Response from the Working Group:
--------------------------------
There are two techniques for keyboard navigation.  One uses the
aria-activedescendant property while the other employs a roving focus.  The
example you cite is using both, which is incorrect.  The rest of the
section builds on the example, and uses aria-activedescendant throughout. 
We have therefore modified the example to be consistent with the active
descendant technique, and amended the text to reflect that.

Thanks for catching this error.



----------------------------------------------------------------------


Comment 344: Avoid inline event listeners in examples
Date: 2010-10-28
Archived at: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010OctDec/0013.html
Relates to: WAI-ARIA 1.0 Authoring Practices - 2.  General Steps for Building an Accessible Widget with WAI-ARIA <http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#accessiblewidget>
Status: Accepted proposal

-------------
Your comment:
-------------
It'd be nice if the example didn't make use of inline JavaScript  event
listeners as that is not a best practice.  Can't we just update the example
so that it  binds the listeners completely via JavaScript?  For example: 

<div role="toolbar" tabindex="0" aria-activedescendant="button1" id="tb1">
  <img src="buttoncut.png" alt="cut" role="button" id="button1">
  <img src="buttoncopy.png" alt="copy" role="button" id="button2">
  <img src="buttonpaste.png" alt="paste" role="button" id="button3">
</div>

 <script>
    ... 

    (function () {

        function optionKeyEvent(event)

          var event = window.event || event;

          {
          var tb = event.target;
          var buttonid; 
      
          DOM_VK_ENTER = 13;
          // Partial sample code for processing arrow keys
    
          if (event.type == "keydown") {
             if (event.altKey) {
               return true;  // Browser should use this, the menu view
doesn't need alt-modified keys
             }
             // XXX Implement circular keyboard navigation within the
toolbar buttons
      
             if (event.keyCode == DOM_VK_ENTER) {
               ExecuteButtonAction(getCurrentButtonID()); // This is an
author defined function
             }
             else if (event.keyCode == event.DOM_VK_RIGHT) {
               // Change the active toolbar button to the one to the right
(circular) by 
               var buttonid = getNextButtonID();   // This is an author
defined function
               tb.setAttribute("aria-activedescendant", buttonid); 
             }
             else if (event.keyCode == event.DOM_VK_LEFT) {
                // Change the active toolbar button to the one to the left
(circular) by 
                var buttonid = getPrevButtonID();  // This is an author
defined function
                tb.setAttribute("aria-activedescendant", buttonid); 
             } 
             else {
                return true;
             }
             return false;
          }
          else if (event.type == "keypress") {
            ...
          }
        }
        
        var toolbar = document.getElementById("tb1");
        
        toolbar.onkeydown = optionKeyEvent;
        toolbar.onkeypress = optionKeyEvent;

    }());
    
</script>

--------------------------------
Response from the Working Group:
--------------------------------
We agree with your comment. We have changed the examples to use DOM Level 1
JavaScript assignment (instead of inline assignment), and have added the
following note to the introductory section:

Note: Most of the JavaScript examples are written to be understandable by
all readers, including novice and intermediate JavaScripters. For example,
most modern rich web applications use DOM Level 2 event listener assignment
now, but some source code examples in this document use DOM Level 1
assignment (e.g. <code>el.onclick = foo;</code> or <code>&lt;el
onclick="foo()"&gt;</code>) because it is easier for all readers to
understand. Expert JavaScripters are encouraged to use modern JavaScript
best practices when developing accessible rich internet applications.

----------------------------------------------------------------------


Comment 345: Tabindex in Webkit
Date: 2010-10-28
Archived at: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010OctDec/0013.html
Relates to: WAI-ARIA 1.0 Authoring Practices - 3.2.1.  Using Tabindex to Manage Focus among Widgets <http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#focus_tabindex>
Status: Accepted proposal

-------------
Your comment:
-------------
Section 3.2.1 mentions that the tabindex property was originally
implemented in IE, but has now  been implemented in Opera, Firefox, and
Mozilla.  You've left out Webkit/Safari - which has had  support for
tabindex on all elements since Safari 4.

--------------------------------
Response from the Working Group:
--------------------------------
Yes, thank you for picking that up. We have replaced Mozilla with Safari in
the list. The implementation on all elements is indicated in the first
sentence of the paragraph and Safari was indeed modified to be consistent
with the IE implementation as were the other browses. 

----------------------------------------------------------------------


Comment 346: DOM activeElement now supported
Date: 2010-10-28
Archived at: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010OctDec/0013.html
Relates to: WAI-ARIA 1.0 Authoring Practices - 3.2.1.  Using Tabindex to Manage Focus among Widgets <http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#focus_tabindex>
Status: Accepted proposal

-------------
Your comment:
-------------
It states that "currently there is no standard DOM interface to get the 
current element with keyboard focus".  From my experience that is no longer
the case.  All of the  modern browsers now support IE's "activeElement"
interface on the Document object - a property that  is now in HTML5.

--------------------------------
Response from the Working Group:
--------------------------------
We have modified the authoring practices to reflect that these events would
be used to monitor changes and that this document object function is now
available. We see this function was recently added to Safari 4 and a recent
version of Opera. It is also in Firefox. 

----------------------------------------------------------------------


Comment 347: Reinforce native semantics principle
Date: 2010-10-28
Archived at: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010OctDec/0013.html
Relates to: WAI-ARIA 1.0 Authoring Practices - 3.2.7.3.1.  Header Levels Versus Nesting Levels  <http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#kbd_layout_nesting_vs_level>
Status: Accepted proposal

-------------
Your comment:
-------------
Section 3.2.7.3.1 has an example of labeling a landmark with its
corresponding header element.  It'd  be nice if this example illustrated
this using an HTML header element rather than the header role to 
re-inforce the best practice of using existing semantics of the host
language when they are  provided.  So, this: 

<div role="main" aria-labelledby="hdr1">
 <h1 id="hdr1" aria-level="1">Top News Stories</h1>
</div>

Rather than this:

<p role="main" aria-labelledby="hdr1">
 <div role="header" id="hdr1" aria-level="1">Top News Stories</div>
</p>

--------------------------------
Response from the Working Group:
--------------------------------
We have made the change minus the aria-level property as it is already
implied by <h1>

Received on Tuesday, 26 February 2013 14:58:07 UTC