Wikipedia:WikiProject Accessibility/MediaWiki accessibility specification#Keyboard Navigation

{{Wikipedia:WikiProject Accessibility/Breadcrumb|MediaWiki accessibility specification}}

{{Wikipedia:WikiProject Accessibility/Navigation menu|MediaWiki}}

Note: The original intend of this page was to write a comprehensive MediaWiki specification for developers. The amount of work needed was too important to do as a volunteer, so I've decided to complete only a few sections. The MediaWiki developers do document their own conventions with regard to accessibility with an Accessibility guide for developers.

One section has been completed and is ready to be used. Others should not be acted upon at the moment. Once they are good enough, we could try to reach MediaWiki developers and get bugs fixed.

Keyboard Navigation

Ensure that every interaction can be used by both the keyboard and the mouse. This is especially relevant for JavaScript and AJAX events. To test keyboard navigation, use the TAB key to access the interaction, and ENTER to use it. Depending on the nature of the interaction, keyboard arrows might be used too (move up and down in a SELECT element).

= Using elements meant for interaction =

If HTML elements meant to be used for interaction are used according to their W3C specification, it should work naturally. For example, if a clickable drop-down menu is made with a link (A element) or Button element it will be keyboard accessible. Because buttons and links are made to be interactive elements according to specification. Problems arise when elements not meant for interactive content (such as a DIV element) are used for interaction (trough javascript for example).

= Event handlers =

Other issues might arise through the use of mouse event handlers. Mouse event handlers should be accompanied by redundant keyboard event handlers. Only "Onclick" is universal.

class="wikitable" style="width:15em;"

|+ Redundant event handlers

!scope="col"|Mouse

!scope="col"|Keyboard

onmouseover

|onfocus

onmouseout

|onblur

mousedown

|keydown

mouseup

|keyup

= TABINDEX =

TABINDEX should be used with caution as it is difficult to use correctly and is annoying to update. The tabulation order should be natural, following the order in the HTML. TABINDEX="0" make the element keyboard focusable, and add it in the tabbing list in the natural order. The search box might be an exception where we want a TABINDEX set to "1". Reference : [http://webaim.org/techniques/keyboard/tabindex Keyboard Accessibility - Tabindex], WebAIM.

= References=

  • [http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/G90 G90]: Providing keyboard-triggered event handlers
  • [http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/SCR2.html SCR2]: Using redundant keyboard and mouse event handlers
  • [http://www.w3.org/TR/WCAG-TECHS/SCR35.html SCR35]: Making actions keyboard accessible by using the onclick event of anchors and buttons
  • [http://www.w3.org/TR/WCAG-TECHS/SCR20.html SCR20]: Using both keyboard and other device-specific functions

Incomplete sections

= CAPTCHA =

Status: Under construction, but already fairly complete.

Captchas with visual verification are unsolvable problems for some groups of users on the internet. They often prevent the users (which also can be customers) from using online services or contact/comment forms. The Carnegie Mellon University provides a [http://recaptcha.net/plugins/mediawiki/ MediaWiki extension] for reCAPTCHA, which also includes an alternative audio CAPTCHA. Unfortunately, this solution can't be used for Wikipedia/MediaWiki at the moment. Why? Please see this [https://lists.wikimedia.org/pipermail/wikitech-l/2008-April/037317.html post] on the Wikitech-l mailing list for example. Brion, the chief MediaWiki developer: "The only thing stopping us from having an audio captcha is that nobody's put the work into implementing it yet." [https://lists.wikimedia.org/pipermail/wikitech-l/2008-April/037327.html wikitech-l/2008-April]

Since then, discussions were focused on the potentially lower level of security that audio captcha can provide. This is a valid and important concern, but it's not likely to be solved anytime soon. There is a choice to make.

It would be great if the reCAPTCHA developers or someone else could provide an additional extension just for an audio solution. This would make many blind and visually impaired users around the world very happy and could make them more independent of seeing help.

Resources:

  • CAPTCHA
  • [http://blog.blindaccessjournal.com/search/label/CAPTCHA Blind Access Journal], entries with tag CAPTCHA
  • [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA reCAPTCHA extension for Mediawiki], info on MediaWiki.org
  • [http://mobilespace.wordpress.com/2008/03/05/open-signed-online-not-accessible-to-the-visually-impaired/ Online petition at Mobile Space Blog], an attempt of self-help, addressed to Nokia/Symbian

= Access keys =

Status: Under construction, but already fairly complete.

Keyboard shortcuts (access keys) are a complicated matter. This feature, in its current implementations was temporarily abandoned in WCAG 2.0. Notably because it conflicts with the shortcuts of assistive technologies. Usage of access keys is currently discouraged in the online contents and applications.

But presence of access keys are also an Authoring Tool Accessibility Guidelines (ATAG) requirement - the ATAG approach is particularly relevant in Wikipedia's case - where this matter is looked into thoroughly. In particular, ATAG requires the possibility to customize shortcuts. This should be requested in bugzilla:477.

Currently, their presence in Wikipedia's interface can be problematic for some users and can be useful for others. But more importantly, it misleads developers into thinking that the interface is keyboard accessible. Requirements that needs to be fulfilled in order to be keyboard accessible are not related to keyboard shortcuts ([http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/G90 G90], [http://www.w3.org/TR/WCAG-TECHS/F42.html F42], [http://www.w3.org/TR/WCAG-TECHS/SCR35.html SCR35], [http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F58 F58], [http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F61 F61]).

= Special pages=

Status: Under construction. This is raw feedback from a screen reader user, and should be used with caution. Plus, it's old.

The following points are desirable improvements for a special skin or gadget for screen reader users. As it seems, some problems are not solvable.

  • All layout brackets should be removed from special pages.
  • Special pages need headings to improve navigation for screen reader users which can easily "jump" from heading to heading.
  • on the search page the line "Search in namespaces" should have a heading format. Wikia's search page provides the lines Article title matches, Page text matches, No page title matches and No page text matches with a heading format (h2). This is very helpful for efficient navigation.
  • On pages such as Recent changes, History, User contributions or the personal Watch list the order of elements should be changed and one heading for every entry should be added for faster navigation and thereby for a huge increase in usability. The order of elements depends on several thoughts which will be explained later.
  • The Tab Index is another small problem. Tabbing index defines the order in which elements will receive focus when navigated by the user via the keyboard. Normally a tab key press will bring you to the next element but on special pages such as recent changes or watch list this don't work because the diff links are prioritized. At the moment, users can solve this problem by navigating with the cursor keys. You can learn more about Tab index at the [http://www.rnib.org.uk/wacblog/articles/too-much-accessibility/too-much-accessibility-tabindex/ WAC Blog].
  • A solution for the diff page has low priority because it seems to be the hardest problem and it's not good to waste development resources for that at the beginning.
  • Read more about an [http://de.wikipedia.org/wiki/Wikipedia:BIENE/Screenreader/Beobachtungsliste optimized watch list in German language].

Specification for the Vector skin

Specification for specific kinds of contents

= Issues with sortable tables =

Status: Under construction, but already fairly complete.

Sortable tables should not be avoided because they are very useful. Trying to remove them would only lead to endless and unnecessary debates.

Templates like {{t|Sortname}}, {{t|Number table sorting}} and {{t|Sort}} generate hidden data in the table. That data contains sort keys hidden in every cell instead of standard metadata.[http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/G115 {{lang|en|G115: Using semantic elements to mark up structure}}], A accessibility level. It makes the cell's content unintelligible for users with CSS styles disabled or unavailable. See also [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Manual_of_Style_(accessibility)&oldid=379786633#Hidden_rows_in_tables this issue report].

Instead, these table cells should use the 'data-sort-value' attribute, to specify a sortvalue.

class="wikitable centre"

|+ Example of sortable table using {{tl|Number table sorting}} template

scope=col | Result shown with CSS enabled

! scope=col | Real content of the table cell
shown when style="display:none" is not supported

{{Number table sorting|47.15}} €

| 7001471500000000000 47.15 €

{{Number table sorting|7.15}} €

| 7000715000000000000 7.15 €

Source

Most of this information was taken from [http://blind.wikia.com/wiki/Mediawiki_and_Accessibility Mediawiki and Accessibility] at blind.wikia.com, a website made by a screen reader user.

{{Reflist}}

MediaWiki accessibility specification