<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nfreear</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nfreear"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Nfreear"/>
	<updated>2026-04-24T05:02:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=oEmbed_proposal&amp;diff=30268</id>
		<title>oEmbed proposal</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=oEmbed_proposal&amp;diff=30268"/>
		<updated>2011-11-02T15:34:03Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Initial copy from Google Docs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: I&#039;m not posting this yet on the Moodle Docs wiki as I&#039;m away 14 Oct-1 November.&lt;br /&gt;
&lt;br /&gt;
Summary: This is a proposal and request for comments for a third-party/ contributed oEmbed filter plugin for Moodle. It would enable authors to easily embed multimedia resources from many web sites, for instance, YouTube, Vimeo, Slideshare, Prezi, LAMS and Google Docs.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: This a proposal - the code does not yet exist!&lt;br /&gt;
&lt;br /&gt;
[Todo: forum link]&lt;br /&gt;
&lt;br /&gt;
== What is oEmbed? ==&lt;br /&gt;
&lt;br /&gt;
From the Wordpress docs:&lt;br /&gt;
 oEmbed is &amp;quot;...a protocol for site A (such as your blog) to ask site B (such as YouTube) for the HTML needed to embed content (such as a video) from site B.&amp;quot; [http://codex.wordpress.org/Embeds#oEmbed]&lt;br /&gt;
&lt;br /&gt;
Longer explanation:&lt;br /&gt;
&lt;br /&gt;
oEmbed is a [http://oembed.com/ specification] for a service-based approach to embedding external content. An author typically inserts a URL for the provider&#039;s web page containing the content, for example, for a YouTube video the author might insert http://youtube.com/watch?v=wZoMbBzqxyc or http://prezi.com/zoidjousoeat/technology-for-the-classroom/ in their Moodle resource. The client plugin (a Moodle filter), takes this URL and makes a request to a web service, for example, http://youtube.com/oembed?format=xml&amp;amp;url=http://youtube.com/watch?v=wZoMbBzqxyc&lt;br /&gt;
&lt;br /&gt;
The web service responds using XML or JSON, and the response contains the embed code. The client replaces the URL in the author&#039;s text with the embed code.&lt;br /&gt;
&lt;br /&gt;
== Adoption ==&lt;br /&gt;
&lt;br /&gt;
Many multimedia sites (providers) have an oEmbed service, including YouTube, Flickr, Slideshare...&lt;br /&gt;
&lt;br /&gt;
There are several services to provide oEmbed on behalf of multiple multimedia providers:&lt;br /&gt;
&lt;br /&gt;
* [http://oohembed.com/ Oohembed.com] - 10s of providers&lt;br /&gt;
* [http://embed.ly/ Embed.ly] - 100s of providers; jQuery plugin; API key; services.json.&lt;br /&gt;
* [http://embed.open.ac.uk/ Embed.open.ac.uk] - The Open University has an experimental oEmbed service, with a jQuery plugin. Currently it supports the OU player (release candidate), YouTube, Prezi, Google Docs spreadsheets/forms and LAMS (Beta). With the OU-embed service we are experimenting with improved mobile support, improved accessibility, HTML5, RDFa, internationalization, and fulfilling niche requirements (eg. embedding LAMS, Scratch etc.). Note, OU-embed ties in with the OULDI project and Cloudworks.&lt;br /&gt;
&lt;br /&gt;
oEmbed is widely adopted on the client side. It is [http://codex.wordpress.org/Embeds#oEmbed native to Wordpress 2.9+], there is a [http://drupal.org/project/oembed Drupal module], and libraries for PHP, Python and other languages. There are also in-browser, Javascript solutions - jquery-oembed, embed.ly&#039;s oEmbed plugin, and a version of jquery-oembed for Embed.open.ac.uk).&lt;br /&gt;
&lt;br /&gt;
It is used in sites like Twitter [link],... and [http://cloudworks.ac.uk/.. Cloudworks]&lt;br /&gt;
&lt;br /&gt;
== Advantages ==&lt;br /&gt;
There are various advantages to oEmbed:&lt;br /&gt;
&lt;br /&gt;
* An author can avoid manual copy and paste of embed HTML code from the multimedia site. So, it simplifies the task of embedding, and prevents mistakes,&lt;br /&gt;
* A web developer need only add support for oEmbed to their site or application once, and take advantage of multimedia embeds from many external sites,&lt;br /&gt;
* It can allow un-privileged users (eg. students) to securely embed content,&lt;br /&gt;
* For the multimedia providers (like YouTube), it allows them to update their embed code once, while the changes take effect across the Web (when caches are updated). This is particularly relevant at the moment - providers can seamlessly switch from Flash to HTML5 &amp;lt;video&amp;gt;, and from &amp;lt;object&amp;gt; to an &amp;lt;iframe&amp;gt; solution with improved content negotiation (mobiles, HTML5, internationalization).&lt;br /&gt;
* A low-cost, lower risk way of experimenting with new multimedia sites and services, including those that are particularly interesting for learning, eg. TimeToast.com (interactive timelines), LAMS etc.&lt;br /&gt;
&lt;br /&gt;
== Dis-advantages ==&lt;br /&gt;
I haven&#039;t thought of any yet. Feel free to suggest!&lt;br /&gt;
&lt;br /&gt;
== The proposal ==&lt;br /&gt;
The proposal is for an oEmbed plugin for Moodle, implemented as a filter in PHP. The  plugin would be influenced chiefly by the Wordpress and Drupal solutions.&lt;br /&gt;
&lt;br /&gt;
Considerations/ proposed requirements:&lt;br /&gt;
&lt;br /&gt;
* A Moodle server-side filter solution - so not Javascript,&lt;br /&gt;
* (Possibly an interim Javascript solution - using jquery-oembed - would this be useful, or confusing?)&lt;br /&gt;
* A plugin for Moodle to consume external resources (it may also be interesting to turn Moodle into an oEmbed provider/server for consumption by other sites, though I don&#039;t yet have a specific use-case - not a priority),&lt;br /&gt;
* The option of a filter syntax, eg. [embed] http://youtu.be/UniQuEiD [/embed] (Wordpress),&lt;br /&gt;
* The option to reveal the filter syntax within the embed. That is, &amp;quot;Click me to see how I was embedded&amp;quot;.&lt;br /&gt;
* Probably, the option to parse all links - &amp;lt;a href=...&amp;lt;/a&amp;gt;,&lt;br /&gt;
* oEmbed responses cached in Moodle,&lt;br /&gt;
* The ability to add and remove oEmbed providers via PHP configuration (Wordpress), and/or Moodle admin-interface (Drupal module),&lt;br /&gt;
* Integration with Moodle roles and permissions,&lt;br /&gt;
* Alignment with existing multimedia/ embedding solutions, and Moodle generally,&lt;br /&gt;
* Like all Moodle filters (Moodle 2+?), oEmbeds could be enabled on a per-course (per-resource?) basis.&lt;br /&gt;
* Security?&lt;br /&gt;
* Performance? (caching)&lt;br /&gt;
* I propose support for Moodle 2 onwards,&lt;br /&gt;
* Support/ compatibility with Embed.ly (including API key, possibly services.json), and Oohembed.com,&lt;br /&gt;
* A list of default providers on installation - requires discussion/input,&lt;br /&gt;
* Evaluate auto-discovery, versus a white-list approach (security).&lt;br /&gt;
&lt;br /&gt;
I&#039;m writing this proposal to introduce the concept, gauge interest, foster discussion, identify issues/ priorities, and find interested parties and potential collaborators.&lt;br /&gt;
&lt;br /&gt;
I hope to have at least some alpha-level code within 6 months.&lt;br /&gt;
&lt;br /&gt;
NOTE: I propose developing this as a side-project, that is not part of my day job at The Open University (unless someone at the OU says they need it ;).)&lt;br /&gt;
&lt;br /&gt;
[Todo: forum link]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [groups.google.com/group/oembed/ oEmbed Google Group]&lt;br /&gt;
* http://viper007bond.com/wordpress-plugins/other-plugins/enable-oembed-discovery/ (http://v007.me/845) / Alex Mills led the implementation of oEmbed for Wordpress.&lt;br /&gt;
* http://viper007bond.com/tag/oembed/&lt;br /&gt;
* http://developer.yahoo.com/blogs/ydn/posts/2008/05/oembed_embeddin/ -- Chris Heilmann (@codepo)&lt;br /&gt;
&lt;br /&gt;
* http://freear.org.uk/content/ou-media-player-project&lt;br /&gt;
* http://freear.org.uk/content/ou-media-player-project&lt;br /&gt;
* http://freear.org.uk/taxonomy/term/54 (oembed)&lt;br /&gt;
* http://2010.imoot.org/tag/?tag=maltwiki&lt;br /&gt;
* http://slideshare.net/nfreear/malt-wiki-techshare2009&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19854</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19854"/>
		<updated>2011-05-14T15:30:24Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Adding &amp;#039;Timeline Widget&amp;#039; plugins DB link, etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk/ Freear.org.uk].&lt;br /&gt;
* Moodle demo site [http://freear.org.uk/moodle/ Freear.org.uk / moodle]&lt;br /&gt;
* My [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 profile on Moodle.org].&lt;br /&gt;
&lt;br /&gt;
Contributed plugins (not written for my day job):&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4143 Calculated Objects question type] contributed plugin - [[Calculated Objects question type| Wiki page]].&lt;br /&gt;
** [https://github.com/nfreear/moodle-qtype_calculatedobjects Calculated Objects, on Github]&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4802 Timeline Widget filter] See #CONTRIB-2502.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_timelinewidget Timeline filter, on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/timelinewidget Timeline filter, on Bitbucket])&lt;br /&gt;
*  [http://moodle.org/mod/data/view.php?rid=4778 SimpleSpeak TTS filter] - speech-synthesis/ text to speech (TTS) - [[User:Nick Freear/SimpleSpeak filter| Wiki page]].&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_simplespeak SimpleSpeak filter on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/simplespeak SimpleSpeak filter, on Bitbucket])&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4714 Scratch embed filter] - plugins database.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_scratchembed Scratch embed on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/scratchembed Scratch embod on Bitbucket])&lt;br /&gt;
* [https://github.com/nfreear/moodle-filter_interwiki Interwiki links filter] - Github.&lt;br /&gt;
* [http://bitbucket.org/nfreear/standard_html5 standard_html5 theme] - Bitbucket.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle 1.6-1.9.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://mycroft.mozdev.org/search-engines.html?name=Moodle Moodle search plugins, on Mycroft] - &#039;Moodle code&#039; plugin.&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19853</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19853"/>
		<updated>2011-05-07T19:51:10Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk/ Freear.org.uk].&lt;br /&gt;
* Moodle demo site [http://freear.org.uk/moodle/ Freear.org.uk / moodle]&lt;br /&gt;
* My [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 profile on Moodle.org].&lt;br /&gt;
&lt;br /&gt;
Contributed plugins (not written for my day job):&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4143 Calculated Objects question type] contributed plugin - [[Calculated Objects question type| Wiki page]].&lt;br /&gt;
* [http://bitbucket.org/nfreear/timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
*  [http://moodle.org/mod/data/view.php?rid=4778 SimpleSpeak TTS filter] - speech-synthesis/ text to speech (TTS) - [[User:Nick Freear/SimpleSpeak filter| Wiki page]].&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_simplespeak SimpleSpeak filter on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/simplespeak SimpleSpeak filter, on Bitbucket])&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4714 Scratch embed filter] - plugins database.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_scratchembed Scratch embed on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/scratchembed Scratch embod on Bitbucket])&lt;br /&gt;
* [https://github.com/nfreear/moodle-filter_interwiki Interwiki links filter] - Github.&lt;br /&gt;
* [http://bitbucket.org/nfreear/standard_html5 standard_html5 theme] - Bitbucket.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle 1.6-1.9.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://mycroft.mozdev.org/search-engines.html?name=Moodle Moodle search plugins, on Mycroft] - &#039;Moodle code&#039; plugin.&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19852</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19852"/>
		<updated>2011-05-07T10:06:10Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: SimpleSpeak links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk/ Freear.org.uk].&lt;br /&gt;
* My Moodle demo site [http://freear.org.uk/moodle/ Freear.org.uk / moodle]&lt;br /&gt;
&lt;br /&gt;
Contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
*  [http://moodle.org/mod/data/view.php?rid=4778 SimpleSpeak TTS filter] - speech-synthesis/ text to speech (TTS).&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_simplespeak SimpleSpeak filter on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/simplespeak SimpleSpeak filter, on Bitbucket])&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=4714 Scratch embed filter] - plugins database.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_scratchembed Scratch embed on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/scratchembed Scratch embod on Bitbucket])&lt;br /&gt;
* [https://github.com/nfreear/moodle-filter_interwiki Interwiki links filter] - Github.&lt;br /&gt;
* [http://bitbucket.org/nfreear/standard_html5 standard_html5 theme] - Bitbucket.&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;br /&gt;
* [http://mycroft.mozdev.org/search-engines.html?name=Moodle Moodle search plugins, on Mycroft] - &#039;Moodle code&#039; plugin.&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19851</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19851"/>
		<updated>2011-04-22T15:15:37Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Adding Mycroft link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk/ Freear.org.uk].&lt;br /&gt;
* My Moodle demo site [http://freear.org.uk/moodle/ Freear.org.uk / moodle]&lt;br /&gt;
&lt;br /&gt;
Contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
*  [https://github.com/nfreear/moodle-filter_simplespeak SimpleSpeak filter] - speech-synthesis/ text to speech (TTS) - Github.&lt;br /&gt;
** ([http://bitbucket.org/nfreear/simplespeak SimpleSpeak filter, on Bitbucket])&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=4714 Scratch embed filter] - plugins database.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_scratchembed Scratch embed on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/scratchembed Scratch embod on Bitbucket])&lt;br /&gt;
* [https://github.com/nfreear/moodle-filter_interwiki Interwiki links filter] - Github.&lt;br /&gt;
* [http://bitbucket.org/nfreear/standard_html5 standard_html5 theme] - Bitbucket.&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;br /&gt;
* [http://mycroft.mozdev.org/search-engines.html?name=Moodle Moodle search plugins, on Mycroft] - &#039;Moodle code&#039; plugin.&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19850</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19850"/>
		<updated>2011-04-22T15:13:27Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Adding lots more &amp;#039;contrib&amp;#039; links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk/ Freear.org.uk].&lt;br /&gt;
* My Moodle demo site [http://freear.org.uk/moodle/ Freear.org.uk / moodle]&lt;br /&gt;
&lt;br /&gt;
Contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
*  [https://github.com/nfreear/moodle-filter_simplespeak SimpleSpeak filter] - speech-synthesis/ text to speech (TTS) - Github.&lt;br /&gt;
** ([http://bitbucket.org/nfreear/simplespeak SimpleSpeak filter, on Bitbucket])&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=4714 Scratch embed filter] - plugins database.&lt;br /&gt;
** [https://github.com/nfreear/moodle-filter_scratchembed Scratch embed on Github]&lt;br /&gt;
** ([http://bitbucket.org/nfreear/scratchembed Scratch embod on Bitbucket])&lt;br /&gt;
* [https://github.com/nfreear/moodle-filter_interwiki Interwiki links filter] - Github.&lt;br /&gt;
* [http://bitbucket.org/nfreear/standard_html5 standard_html5 theme] - Bitbucket.&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19849</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19849"/>
		<updated>2011-01-02T17:18:33Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
* [http://bitbucket.org/nfreear/simplespeak/src#wiki SimpleSpeak filter] - speech-synthesis/ text to speech (TTS).&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19848</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19848"/>
		<updated>2010-12-12T21:31:53Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Added &amp;#039;SimpleSpeak&amp;#039; - reorganised.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/moodle-timelinewidget/src#wiki Timeline Widget filter]. See #CONTRIB-2502.&lt;br /&gt;
* [http://bitbucket.org/nfreear/moodle-simplespeak/src#wiki SimpleSpeak filter] - speech-synthesis/ text to speech (TTS).&lt;br /&gt;
&lt;br /&gt;
Other key contributions/ links:&lt;br /&gt;
&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19847</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19847"/>
		<updated>2010-11-29T22:27:25Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/moodle-timelinewidget/src#wiki Timeline Widget] contributed filter plug-in. See #CONTRIB-2502.&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19846</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19846"/>
		<updated>2010-11-29T22:26:54Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/moodle-timelinewidget/src#wiki| Timeline Widget] contributed filter plug-in. See #CONTRIB-2502.&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19845</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19845"/>
		<updated>2010-11-29T22:21:16Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Adding &amp;#039;Timeline Widget&amp;#039; links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [http://bitbucket.org/nfreear/moodle-timelinewidget| Timeline Widget] contributed filter plug-in. See [http://tracker.moodle.org/browse/CONTRIB-2502| #CONTRIB-2502].&lt;br /&gt;
* [[Accessibility notes|Accessibility development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19844</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19844"/>
		<updated>2010-10-10T20:07:58Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
* [[Calculated Objects question type]] contributed plug-in.&lt;br /&gt;
* [[Accessibility notes|Accessibility  development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6993</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6993"/>
		<updated>2009-10-06T16:40:34Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.6 */, Moodle forum link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
These notes give an overview of what accessibility work has been done from Moodle 1.6 onwards, what is left to do, and what guidelines, techniques and coding patterns are being used. Initially based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome! [[User:Nick Freear|Nick Freear]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
The issues remaining (todo list), for Moodle 2.0 and beyond.&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - there are[http://www.standards-schmandards.com/2006/wysiwyg-editor-test good open-source contenders] including TinyMCE, [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of the interface, AND the validity and accessibility of the content and markup produced&lt;br /&gt;
- see [[#Guidelines|Guidelines]] section.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by the system administrator (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: draft status.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, insert link, remove link, insert image, special character (new window), show HTML, search-replace (new window), (language not configurable), (heading/normal not configurable).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, direction left to right, direction right to left, reduce indent, increase indent, text colour, background colour, horizontal rule, insert table, insert emoticon, (spell check, new window), enlarge editor (new window).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
Accessibility issues fixed by Moodle release, with links to the Moodle bug tracker. Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 ===&lt;br /&gt;
Released: Beta 2, circa 22 October 2007&lt;br /&gt;
&lt;br /&gt;
Meta-bug, MDL-12298 (14 sub-tasks, 7 dependencies). &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages (3 bugs).&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Moodle 1.6 is the first release to which the Open University contributed development resources. An [http://moodle.org/mod/forum/discuss.php?d=40484 accessibility proposal from Open University] identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), added &amp;amp;lt;h1&amp;gt; to mark-up headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for calendar/event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown; the Open University was not involved with Moodle at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process (similar to the &#039;&#039;waterfall&#039;&#039; programming/design process):&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
(Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design patterns ==&lt;br /&gt;
This section documents some specific, re-usable coding techniques that improve the accessibility of Moodle. They include server-side (PHP) and client side (XHTML, CSS styles) code samples, and links to specific parts of the [[#Guidelines|Web Content Accessibility Guidelines]].&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; (that is, not spoken by assistive technologies including screen readers) representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Accessibility]]&lt;br /&gt;
* [[Moodle Accessibility Specification|Accessibility Specification, Moodle 1.8]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{CategoryDeveloper}}&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19843</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19843"/>
		<updated>2009-07-13T13:45:40Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
* My blog [http://freear.org.uk Freear.org.uk].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
* [[Accessibility notes|Accessibility  development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19842</id>
		<title>User:Nick Freear</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Nick_Freear&amp;diff=19842"/>
		<updated>2008-07-14T11:54:22Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a software/web developer at the Open University UK, working in the [http://iet.open.ac.uk Institute of Educational Technology].&lt;br /&gt;
&lt;br /&gt;
Key contributions/links:&lt;br /&gt;
* [[Accessibility notes|Accessibility  development]] for Moodle.&lt;br /&gt;
* [[Groups|Extended groups and groupings]] for Moodle 1.8/1.9.&lt;br /&gt;
* [http://moodle.org/user/view.php?id=93815&amp;amp;course=5 My profile on Moodle.org].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6991</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6991"/>
		<updated>2008-07-14T11:45:29Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Re-ordered, new summary, etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
These notes give an overview of what accessibility work has been done from Moodle 1.6 onwards, what is left to do, and what guidelines, techniques and coding patterns are being used. Initially based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome! [[User:Nick Freear|Nick Freear]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
The issues remaining (todo list), for Moodle 2.0 and beyond.&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - there are[http://www.standards-schmandards.com/2006/wysiwyg-editor-test good open-source contenders] including TinyMCE, [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of the interface, AND the validity and accessibility of the content and markup produced&lt;br /&gt;
- see [[#Guidelines|Guidelines]] section.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by the system administrator (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: draft status.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, insert link, remove link, insert image, special character (new window), show HTML, search-replace (new window), (language not configurable), (heading/normal not configurable).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, direction left to right, direction right to left, reduce indent, increase indent, text colour, background colour, horizontal rule, insert table, insert emoticon, (spell check, new window), enlarge editor (new window).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
Accessibility issues fixed by Moodle release, with links to the Moodle bug tracker. Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 ===&lt;br /&gt;
Released: Beta 2, circa 22 October 2007&lt;br /&gt;
&lt;br /&gt;
Meta-bug, MDL-12298 (14 sub-tasks, 7 dependencies). &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages (3 bugs).&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Moodle 1.6 is the first release to which the Open University contributed development resources. An accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), added &amp;amp;lt;h1&amp;gt; to mark-up headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for calendar/event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown; the Open University was not involved with Moodle at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process (similar to the &#039;&#039;waterfall&#039;&#039; programming/design process):&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
(Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design patterns ==&lt;br /&gt;
This section documents some specific, re-usable coding techniques that improve the accessibility of Moodle. They include server-side (PHP) and client side (XHTML, CSS styles) code samples, and links to specific parts of the [[#Guidelines|Web Content Accessibility Guidelines]].&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; (that is, not spoken by assistive technologies including screen readers) representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Accessibility]]&lt;br /&gt;
* [[Moodle Accessibility Specification|Accessibility Specification, Moodle 1.8]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Groups&amp;diff=6459</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Groups&amp;diff=6459"/>
		<updated>2007-11-27T14:53:56Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Added &amp;#039;See also&amp;#039; + Category:Developer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Improving the Groups design in Moodle 1.9==&lt;br /&gt;
Summary of problems:&lt;br /&gt;
* Groupings not implemented in modules&lt;br /&gt;
* Concept of orphaned groups&lt;br /&gt;
* Not integrated into Moodle core&lt;br /&gt;
* Potential group sharing problems&lt;br /&gt;
&lt;br /&gt;
==Other proposals==&lt;br /&gt;
* [[Groupings OU]]&lt;br /&gt;
* [[Groupings and Groups]]&lt;br /&gt;
&lt;br /&gt;
==Change groups/groupings relationship==&lt;br /&gt;
At present both groups and groupings are not linked strictly to one course, you could use one group in several courses and groupings at the same time. This loose relationship of groups and groupings adds too much complexity and could be/is a source of bugs in code.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Solution:&#039;&#039; Each group and grouping would link the course id directly. Groupings would be only limiting the number of usable groups in activities. This allows free sharing of groups in groupings inside course without potential problems. This idea was proposed by Enrique. See attached db schema.&lt;br /&gt;
&lt;br /&gt;
[[Image:groupsdb.png]]&lt;br /&gt;
&lt;br /&gt;
===course===&lt;br /&gt;
* groupingid - default grouping used in course (new activities, etc.)&lt;br /&gt;
&lt;br /&gt;
===course_modules===&lt;br /&gt;
* groupingid - grouping used in activity&lt;br /&gt;
* grouponly - limit access to and visibility of activity based on group membership - if user is not member of at least one group in grouping, the activity is invisible for them; this needs a new shared option in course/moodleform_mod.php&lt;br /&gt;
&lt;br /&gt;
===groupings===&lt;br /&gt;
renamed table&lt;br /&gt;
* exclusivegroups - hint for UI group distribution tools - non overlapping groups requested&lt;br /&gt;
* maxgroupsize - hint for UI group distribution tools - requested number of users in each group &lt;br /&gt;
&lt;br /&gt;
===groupings_groups===&lt;br /&gt;
renamed table&lt;br /&gt;
&lt;br /&gt;
===groups===&lt;br /&gt;
reverted to pre 1.8 state (with the password exception)&lt;br /&gt;
&lt;br /&gt;
===Benefits===&lt;br /&gt;
*fewer tables&lt;br /&gt;
*normalized&lt;br /&gt;
*simpler SQL&lt;br /&gt;
*easier backup/restore implementation&lt;br /&gt;
*more compatible with old group implementation in 1.7&lt;br /&gt;
&lt;br /&gt;
==Linked groups==&lt;br /&gt;
Maybe in future - it would allow synchronizing of group membership from different courses; the idea is to have linkid in groups table and synchronize the groups membership in group functions for adding/removing of members for groups with the same linkid.&lt;br /&gt;
&lt;br /&gt;
==Group/grouping cloning==&lt;br /&gt;
Cloning or duplicating is UI feature only, it helps to prefill new groups/groupings with existing data. In theory it could also copy existing grouping setups from other courses too.&lt;br /&gt;
&lt;br /&gt;
==Other code cleanup==&lt;br /&gt;
Current group code does not follow Moodle coding guide, has several unfinished/broken/obsoleted parts, is not integrated into core, etc.&lt;br /&gt;
To do:&lt;br /&gt;
*integrate setup and upgrade into main lib/db/*.*&lt;br /&gt;
*remove columns from groupings table that can be replaced by permissions&lt;br /&gt;
*reduce the number of functions, rewrite or fix them, move them into lib/grouplib.php&lt;br /&gt;
*rewrite UI in /group/&lt;br /&gt;
*implement module and course groupings support, fix all mods to use it (course edit form, mod edit form, etc.)&lt;br /&gt;
*fix legacy functions&lt;br /&gt;
*documentation&lt;br /&gt;
&lt;br /&gt;
==Needed time==&lt;br /&gt;
1 month for implementation and testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Groupings and Groups|Enrique Castro group specification]].&lt;br /&gt;
* [[Groupings OU|Open University group specification]].&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6990</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6990"/>
		<updated>2007-11-26T14:09:43Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Editor */, fix white/black lists.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - there are[http://www.standards-schmandards.com/2006/wysiwyg-editor-test good open-source contenders] including TinyMCE, [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of the interface, AND the validity and accessibility of the content and markup produced&lt;br /&gt;
- see [[#Guidelines|Guidelines]] section.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by the system administrator (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: draft status.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, insert link, remove link, insert image, special character (new window), show HTML, search-replace (new window), (language not configurable), (heading/normal not configurable).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, direction left to right, direction right to left, reduce indent, increase indent, text colour, background colour, horizontal rule, insert table, insert emoticon, (spell check, new window), enlarge editor (new window).&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007&lt;br /&gt;
&lt;br /&gt;
Meta-bug, MDL-12298 (14 sub-tasks, 7 dependencies). &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages (3 bugs).&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6989</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6989"/>
		<updated>2007-11-22T07:42:22Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.9 Beta 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - there are[http://www.standards-schmandards.com/2006/wysiwyg-editor-test good open-source contenders] including TinyMCE, [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of the interface, AND the validity and accessibility of the content and markup produced&lt;br /&gt;
- see [[#Guidelines|Guidelines]] section.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by the system administrator (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: draft status.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy?, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, link, remove link?, image, character palette, show HTML, R?, (language not configurable).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, ?P, ?P, reduce indent, increase indent, text colour, background colour?, horizontal line, table, emoticon, (spell check?), new window.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007&lt;br /&gt;
&lt;br /&gt;
Meta-bug, MDL-12298 (14 sub-tasks, 7 dependencies). &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages (3 bugs).&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6988</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6988"/>
		<updated>2007-11-22T07:36:55Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - there are[http://www.standards-schmandards.com/2006/wysiwyg-editor-test good open-source contenders] including TinyMCE, [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of the interface, AND the validity and accessibility of the content and markup produced&lt;br /&gt;
- see [[#Guidelines|Guidelines]] section.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by the system administrator (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: draft status.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy?, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, link, remove link?, image, character palette, show HTML, R?, (language not configurable).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, ?P, ?P, reduce indent, increase indent, text colour, background colour?, horizontal line, table, emoticon, (spell check?), new window.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages, MDL-7878, MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6987</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6987"/>
		<updated>2007-11-22T07:25:56Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Use new Moodle tracker filter!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;, MDL-9306.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - TinyMCE is a [http://www.standards-schmandards.com/2006/wysiwyg-editor-test strong open-source contender], [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of use of the interface, and the accessibility of the content and markup produced - see [[#Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by system administrators (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: edit.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy?, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, link, remove link?, image, character palette, show HTML, R?, (lang n/a).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, ?P, ?P, reduce indent, increase indent, text colour, background colour?, horizontal line, table, emoticon, (spell check), new window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: MDL-8627, MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages, MDL-7878, MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug MDL-7396 (45 sub-tasks, 3 dependencies). There was also funding from Italy - see MDL-7860 (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists, MDL-6548: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
Work done for Moodle 1.5 is unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6986</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6986"/>
		<updated>2007-11-22T07:19:28Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - TinyMCE is a [http://www.standards-schmandards.com/2006/wysiwyg-editor-test strong open-source contender], [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of use of the interface, and the accessibility of the content and markup produced - see [[#Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by system administrators (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: edit.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy?, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, link, remove link?, image, character palette, show HTML, R?, (lang n/a).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, ?P, ?P, reduce indent, increase indent, text colour, background colour?, horizontal line, table, emoticon, (spell check), new window.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). There was also funding from Italy - see [http://tracker.moodle.org/browse/MDL-7860 MDL-7860] (26 sub-tasks). Here is an (incomplete) summary:&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6985</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6985"/>
		<updated>2007-11-22T07:11:30Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues remaining */, added Editor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
&lt;br /&gt;
The rich-text/HTML editor used in Moodle is currently based on HTMLArea. There are many accessibility issues, and we hope it will be replaced soon - TinyMCE is a [http://www.standards-schmandards.com/2006/wysiwyg-editor-test strong open-source contender], [http://themaninblue.com/experiment/widgEditor WidgEditor] would be a very simple starting point, or there are [http://456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead what you see is what you mean] (WYSIWYM) editors. We are concerned with the ease of use of use of the interface, and the accessibility of the content and markup produced - see [[#Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In the meantime, the current editor can be configured by system administrators (go to, Site administration - Appearance - HTML editor). Below are lists of the options it would be sensible to enable and disable (starting from the Open University&#039;s configuration)&lt;br /&gt;
- TODO: edit.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Whitelist&#039;&#039;&#039; (untick): Word format filter (tick), format, bold, italic, strikethrough, subscript, superscript, copy?, cut, paste, Word filter, undo, redo, number list, bullet list, anchor, link, remove link?, image, character palette, show HTML, R?, (lang n/a).&lt;br /&gt;
* &#039;&#039;&#039;Blacklist&#039;&#039;&#039; (tick): fontname, font-size, underline, left align, center align, right align, justify, ?P, ?P, reduce indent, increase indent, text colour, background colour?, horizontal line, table, emoticon, (spell check), new window.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6984</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6984"/>
		<updated>2007-11-21T17:21:41Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues remaining */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list/ roadmap, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* &#039;onchange&#039; popup menus: not keyboard accessible.&lt;br /&gt;
* Compact forms, example search: consistency, and use an icon label, not hidden label.&lt;br /&gt;
* Rich-text editor: fix remaining issues/ replace.&lt;br /&gt;
* Rich-text editor: switch off many buttons/menus by default (OU does).&lt;br /&gt;
* Old Forms: use QuickForms OR add label markup - pragmatic approach.&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Review USER-&amp;gt;screenreader flag use.&lt;br /&gt;
* Documentation: detailed release notes, template conformance claims/accessibility statement, help, for different audiences (students, developers, institutions looking to use Moodle)&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Content: guidelines, limitations?&lt;br /&gt;
* Automated testing?&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6983</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6983"/>
		<updated>2007-11-20T08:47:55Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Guidelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
The [http://w3.org Worldwide Web Consortium] (W3C) and its working groups publishes many relevant recommendations, guidelines and standards. The [http://w3.org/WAI Web Accessibility Initiative] (WAI) is the key part of the W3C concerned with accessibility and usability.&lt;br /&gt;
&lt;br /&gt;
* The [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, are the current recommendations that most apply to Moodle. There are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* The [http://w3.org/TR/WCAG20 Web Content Accessibility Guidelines 2.0] are currently at the W3C Working Draft stage (17 May 2007) - they are expected to become a stable recommendation in 2008. WCAG20 is designed to be more testable and technology agnostic so that it can be applied to the full range of current and future technologies on the Web - XHTML, PDF, Flash and so on. HTML documents and sites that follow WCAG10 will almost certainly comply with WCAG20. (Key principles: perceivable, operable, understandable, robust POUR.)&lt;br /&gt;
* The [http://w3.org/TR/aria-roadmap Accessible Rich Internet Applications] draft standards (ARIA roadmap September 2006) are useful to ensure that scripting and asynchronous events (AJAX) work with assistive technologies. They supplement HTML with additional semantics: role, state and properties.&lt;br /&gt;
* Moodle and components like the rich-text editor are subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
=== Web Content Accessibility Guidelines 1.0 ===&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# Use interim solutions.&lt;br /&gt;
# Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6982</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6982"/>
		<updated>2007-11-02T21:21:10Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 1: unlist, inline-list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach echo $X&amp;lt;/code&amp;gt; loops (or foreach $output.=$X).&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6981</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6981"/>
		<updated>2007-11-02T13:16:33Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 2: accesshide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a [[#Pattern 3: left, right arrows|&#039;&#039;silent&#039;&#039; character]]. The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: this is a &#039;&#039;&#039;hack&#039;&#039;&#039;, we prefer visible text - use cautiously (most necessary uses have already been identified), and consult before use.&lt;br /&gt;
* Warning: &#039;&#039;&#039;NOT&#039;&#039;&#039; for links - see [[#Pattern 4: skip link|skip link]] pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Also know as: offscreen/ off-screen hidden text.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://w3.org/TR/WCAG10/#gl-color WCAG10, Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt; (available Moodle 1.9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// @return string HTML&lt;br /&gt;
function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6980</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6980"/>
		<updated>2007-11-02T11:46:12Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 4: skip link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: we prefer visible text - use cautiously (most necessary uses have already been identified, discuss).&lt;br /&gt;
* Warning: NOT for links - see &#039;skip link&#039; pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 4: skip link ===&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty: medium. &amp;lt;code&amp;gt;:active&amp;lt;/code&amp;gt; is a hack for IE 6.&lt;br /&gt;
* Problem: keyboard-only users have large numbers of links to contend with in Moodle.&lt;br /&gt;
* Context: side blocks, home page and course pages.&lt;br /&gt;
* Principle: [http://w3.org/TR/WAI-WEBCONTENT/#gl-facilitate-navigation WCAG1 Guideline 13.6 - Group related links... and, until user agents do so, provide a way to bypass the group].&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution 1, CSS: (&#039;&#039;&#039;only&#039;&#039;&#039; for comparison)&lt;br /&gt;
 a.skip                      { color: white; }&lt;br /&gt;
 a.skip:focus, a.skip:active { color: black; }&lt;br /&gt;
&lt;br /&gt;
* Solution 2, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt; (&#039;&#039;&#039;used&#039;&#039;&#039; in Moodle 1.9)&lt;br /&gt;
 a:skip      { position: absolute; top: -1000em; }&lt;br /&gt;
 a.skip:focus, a.skip:active { position: static; }&lt;br /&gt;
&lt;br /&gt;
* Plus, in each case:&lt;br /&gt;
 .skip-destination, .skip-to { display: block; height: 1px; }&lt;br /&gt;
&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms, img-text class .&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6979</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6979"/>
		<updated>2007-11-02T11:21:41Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 3: left, right arrows */, added &amp;#039;skip link&amp;#039; pattern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: we prefer visible text - use cautiously (most necessary uses have already been identified, discuss).&lt;br /&gt;
* Warning: NOT for links - see &#039;skip link&#039; pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pattern 4: skip link ==&lt;br /&gt;
&lt;br /&gt;
* Warnings: we prefer links to be visible.&lt;br /&gt;
* Difficulty:&lt;br /&gt;
* Context:&lt;br /&gt;
* Principle:&lt;br /&gt;
* Available: Moodle 1.9, October 2007.&lt;br /&gt;
* Use count:&lt;br /&gt;
* Solution:&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6978</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6978"/>
		<updated>2007-11-02T11:13:38Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 2: accesshide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
* Warning: we prefer visible text - use cautiously (most necessary uses have already been identified, discuss).&lt;br /&gt;
* Warning: NOT for links - see &#039;skip link&#039; pattern below.&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Context: provides context for a non-sighted user, where the meaning would otherwise be clear from formatting.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2 - don&#039;t rely on colour alone].&lt;br /&gt;
* Available: Moodle 1.6 March 2006.&lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Use count: 29+ !&lt;br /&gt;
* Solution, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Solution, PHP: &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;function get_accesshide($text, $elem=&#039;span&#039;, $class=&#039;&#039;, $attrs=&#039;&#039;)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Examples, HTML: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6977</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6977"/>
		<updated>2007-11-01T13:33:31Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 1: unlist, inline-list */, update from Hackfest slides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal.&lt;br /&gt;
&lt;br /&gt;
* Warnings: none - please use!&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope.&lt;br /&gt;
* Context: Moodle contains lots of list - typically look for &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops.&lt;br /&gt;
* Principle: [http://www.w3.org/TR/WAI-WEBCONTENT/#gl-structure-presentation WCAG1 Guideline 3.6 - Mark up lists and list items properly].&lt;br /&gt;
* Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&lt;br /&gt;
* Use count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Definition, CSS: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Examples, PHP/HTML: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;ul class=&#039;inline-list&#039;&amp;gt;&amp;quot;;&lt;br /&gt;
foreach ($etags as $tag) {&lt;br /&gt;
    $this-&amp;gt;content-&amp;gt;text .= &#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&#039;.$link.&#039;&amp;quot; ... &amp;gt;&#039;.$tag-&amp;gt;name.&#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &#039;;&lt;br /&gt;
}&lt;br /&gt;
$this-&amp;gt;content-&amp;gt;text .= &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Problem, Context, Principle, Solution, Why, Examples]&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6976</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6976"/>
		<updated>2007-10-29T13:57:43Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.9 Beta */, skip links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta 2 ===&lt;br /&gt;
Released: circa 22 October 2007 &lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Skip block/ skip to content bug fixes, and extended to site home page, course index, as well as course pages [http://tracker.moodle.org/browse/MDL-7878 MDL-7878], MDL-11675, MDL-11695.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
* (&#039;&#039;Consolidation&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6975</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6975"/>
		<updated>2007-10-12T16:20:45Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* What JAWS says */, myths&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically Web browsers, word processors, email software).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro, HAL from Dolphin, and [http://www.screenreader.net Thunder] (free for personal use - please try).&lt;br /&gt;
&lt;br /&gt;
First, to clear up common mis-conceptions:&lt;br /&gt;
* Screen readers do NOT request pages directly, they work through a browser, often Internet Explorer.&lt;br /&gt;
* They DO try to deal with Javascript and style sheets (with the &amp;quot;screen&amp;quot; media attribute). So &#039;noscript&#039; elements are not read.&lt;br /&gt;
* Screen readers can be configured/scripted for different levels of verbosity, different applications and so on. However, many users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration. Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
* In default configuration JAWS does NOT read TITLE attributes. Always use ALT for images.&lt;br /&gt;
* Most screen readers have a &#039;virtual buffer&#039; to allow keyboard shortcuts for headings, lists, forms. This can be a problem for Javascript. &lt;br /&gt;
...&lt;br /&gt;
[Too much accessibility]&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=MoodleMoot_2007_HackFest&amp;diff=7124</id>
		<title>MoodleMoot 2007 HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=MoodleMoot_2007_HackFest&amp;diff=7124"/>
		<updated>2007-10-12T11:48:17Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Accessibility demonstration */, added times (am &amp;amp; pm)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The main part of the [http://moodlemoot.org/ 2007 UK Moodle Moot] is on Wednesday and Thursday 24th and 25th October. The day before, on the Tuesday, there will be a HackFest for developers to meet, talk and write code.&lt;br /&gt;
&lt;br /&gt;
==Practical arrangement==&lt;br /&gt;
&lt;br /&gt;
You need to get [http://maps.google.co.uk/maps?ll=52.025356,-0.710997&amp;amp;spn=0.001005,0.001904&amp;amp;t=k&amp;amp;z=19 right here]. This is the centre of the Open University&#039;s Campus:&lt;br /&gt;
&lt;br /&gt;
[http://www3.open.ac.uk/contact/ The Open University]&amp;lt;br /&amp;gt;&lt;br /&gt;
Walton Hall&amp;lt;br /&amp;gt;&lt;br /&gt;
Milton Keynes&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://maps.google.co.uk/?q=mk7+6aa&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;f=d MK7 6AA]&lt;br /&gt;
&lt;br /&gt;
The area we are meeting in is called the Christodoulou Meeting Rooms. The entry is under an archway, and if you go in and up the stairs you should find us in Meeting Room 15, or the open foyer area just outside it. We will be there from about 10:00am to about 5:30pm, and lunch will be provided.&lt;br /&gt;
&lt;br /&gt;
If you are registered for the MoodleMoot, wireless network sign-in information should be available on arrival.&lt;br /&gt;
&lt;br /&gt;
==Programme for the day==&lt;br /&gt;
&lt;br /&gt;
In keeping with Moodle&#039;s open source philosophy, the day will be self-organising. You can turn up and talk to other developers about anything you like. However, within that general free-for-all, we will have a number of pre-announced discussions on particular topics at particular times. We have a number of other rooms available for these break-out sessions, but I don&#039;t know the numbers right now.&lt;br /&gt;
&lt;br /&gt;
Please feel free to add your own suggestions below.&lt;br /&gt;
&lt;br /&gt;
Naturally, not all developers will be able to come, so it might be a good idea to start discussing some of these topics in the [http://moodle.org/mod/forum/view.php?id=55 General Developer Forum] now. And if anything significant comes out of the discussions, we should try to record it on the wiki.&lt;br /&gt;
&lt;br /&gt;
===Quiz developments===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 2:00 to 3:00&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Tim Hunt&lt;br /&gt;
|}&lt;br /&gt;
We can discuss some things that have happened recently:&lt;br /&gt;
* The implication of [[Plan_to_Improve_Flexibility_of_Question_Category_Sharing_and_Permissions|Jamie&#039;s recent changes to the question bank]],&lt;br /&gt;
* Improvements to the question type API, especially [[Plans_for_enhancing_import/export_in_questiontype_plugins|Howard&#039;s recent changes]],&lt;br /&gt;
some things that will probably happen soon:&lt;br /&gt;
* The OU&#039;s quiz navigation changes, that we hope to put into Moodle 2.0,&lt;br /&gt;
* The OU&#039;s [[Plans_for_adaptive_mode|changes to adaptive mode]] that we hope to put into Moodle 2.0,&lt;br /&gt;
* Tony Gardner-Medwin&#039;s plans to introduce certainty-based marking,&lt;br /&gt;
known problems with the quiz architecture that no-one is working on right now:&lt;br /&gt;
* ... suggestions welcome ...&lt;br /&gt;
and anything else you want to raise.&lt;br /&gt;
&lt;br /&gt;
Of course, you can talk to me about the quiz at any time time during the day too, if you have a more specific issue.&lt;br /&gt;
&lt;br /&gt;
===ePortfolios===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 2:00 to 3:00&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Thanh Le&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Social Networking tools===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 11 - 12&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Jenny Grey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Offline Moodle (and particularly synchronisation issues)===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Colin Chambers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Conditional Activities===&lt;br /&gt;
The aim is to develop some consensus on how it can work so that a spec can be started.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Martin Dougiamas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Repository API===&lt;br /&gt;
The aim is to develop some consensus on how it can work so that a spec can be started.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Martin Dougiamas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Enrolment &#039;Groups&#039;===&lt;br /&gt;
An overview of &#039;the problem&#039; how we&#039;ve solved it in the short term and discussion of hot it can be solved in core.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Dan Poltawski&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessibility demonstration ===&lt;br /&gt;
My colleague Chetz Colwell and I would like to give a brief demonstration of assistive technologies to developers, particularly core developers, and discuss future accessibility work on Moodle. We&#039;ll hopefully have a screen reader JAWS (Thunder?), screen magnifier, do a keyboard-only demo, and possibly speech recognition.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 10:00 to 11:00 (or 15:00 to 16:00)&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Nick Freear&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PGP Keysiging ==&lt;br /&gt;
&lt;br /&gt;
If any developers would like to exchange PGP Keys and expand their web of trust then this could be done during the Developer day.  &lt;br /&gt;
&lt;br /&gt;
I think it would be good to follow the  [http://www.debian.org/events/keysigning Debian guidlines] for this.--[[User:Dan Poltawski|Dan Poltawski]] 18:03, 10 October 2007 (CDT)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Developer conferences]]&lt;br /&gt;
* [http://moodle.org/mod/forum/view.php?id=55 General Developer Forum]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=MoodleMoot_2007_HackFest&amp;diff=7123</id>
		<title>MoodleMoot 2007 HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=MoodleMoot_2007_HackFest&amp;diff=7123"/>
		<updated>2007-10-11T14:13:03Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Enrolment &amp;#039;Groups&amp;#039; */, added &amp;#039;Accessibility demonstration&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The main part of the [http://moodlemoot.org/ 2007 UK Moodle Moot] is on Wednesday and Thursday 24th and 25th October. The day before, on the Tuesday, there will be a HackFest for developers to meet, talk and write code.&lt;br /&gt;
&lt;br /&gt;
==Practical arrangement==&lt;br /&gt;
&lt;br /&gt;
You need to get [http://maps.google.co.uk/maps?ll=52.025356,-0.710997&amp;amp;spn=0.001005,0.001904&amp;amp;t=k&amp;amp;z=19 right here]. This is the centre of the Open University&#039;s Campus:&lt;br /&gt;
&lt;br /&gt;
[http://www3.open.ac.uk/contact/ The Open University]&amp;lt;br /&amp;gt;&lt;br /&gt;
Walton Hall&amp;lt;br /&amp;gt;&lt;br /&gt;
Milton Keynes&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://maps.google.co.uk/?q=mk7+6aa&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;f=d MK7 6AA]&lt;br /&gt;
&lt;br /&gt;
The area we are meeting in is called the Christodoulou Meeting Rooms. The entry is under an archway, and if you go in and up the stairs you should find us in Meeting Room 15, or the open foyer area just outside it. We will be there from about 10:00am to about 5:30pm, and lunch will be provided.&lt;br /&gt;
&lt;br /&gt;
If you are registered for the MoodleMoot, wireless network sign-in information should be available on arrival.&lt;br /&gt;
&lt;br /&gt;
==Programme for the day==&lt;br /&gt;
&lt;br /&gt;
In keeping with Moodle&#039;s open source philosophy, the day will be self-organising. You can turn up and talk to other developers about anything you like. However, within that general free-for-all, we will have a number of pre-announced discussions on particular topics at particular times. We have a number of other rooms available for these break-out sessions, but I don&#039;t know the numbers right now.&lt;br /&gt;
&lt;br /&gt;
Please feel free to add your own suggestions below.&lt;br /&gt;
&lt;br /&gt;
Naturally, not all developers will be able to come, so it might be a good idea to start discussing some of these topics in the [http://moodle.org/mod/forum/view.php?id=55 General Developer Forum] now. And if anything significant comes out of the discussions, we should try to record it on the wiki.&lt;br /&gt;
&lt;br /&gt;
===Quiz developments===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 2:00 to 3:00&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Tim Hunt&lt;br /&gt;
|}&lt;br /&gt;
We can discuss some things that have happened recently:&lt;br /&gt;
* The implication of [[Plan_to_Improve_Flexibility_of_Question_Category_Sharing_and_Permissions|Jamie&#039;s recent changes to the question bank]],&lt;br /&gt;
* Improvements to the question type API, especially [[Plans_for_enhancing_import/export_in_questiontype_plugins|Howard&#039;s recent changes]],&lt;br /&gt;
some things that will probably happen soon:&lt;br /&gt;
* The OU&#039;s quiz navigation changes, that we hope to put into Moodle 2.0,&lt;br /&gt;
* The OU&#039;s [[Plans_for_adaptive_mode|changes to adaptive mode]] that we hope to put into Moodle 2.0,&lt;br /&gt;
* Tony Gardner-Medwin&#039;s plans to introduce certainty-based marking,&lt;br /&gt;
known problems with the quiz architecture that no-one is working on right now:&lt;br /&gt;
* ... suggestions welcome ...&lt;br /&gt;
and anything else you want to raise.&lt;br /&gt;
&lt;br /&gt;
Of course, you can talk to me about the quiz at any time time during the day too, if you have a more specific issue.&lt;br /&gt;
&lt;br /&gt;
===ePortfolios===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 2:00 to 3:00&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Thanh Le&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Social Networking tools===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || 11 - 12&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Jenny Grey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Offline Moodle (and particularly synchronisation issues)===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Colin Chambers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Conditional Activities===&lt;br /&gt;
The aim is to develop some consensus on how it can work so that a spec can be started.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Martin Dougiamas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Repository API===&lt;br /&gt;
The aim is to develop some consensus on how it can work so that a spec can be started.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Martin Dougiamas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Enrolment &#039;Groups&#039;===&lt;br /&gt;
An overview of &#039;the problem&#039; how we&#039;ve solved it in the short term and discussion of hot it can be solved in core.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Time: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Room: || ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Dan Poltawski&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessibility demonstration ===&lt;br /&gt;
My colleague Chetz Colwell and I would like to give a brief demonstration of assistive technologies to developers, particularly core developers, and discuss future accessibility work on Moodle. We&#039;ll hopefully have a screen reader JAWS (Thunder?), screen magnifier, do a keyboard-only demo, and possibly speech recognition.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Time: &lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
! Room: &lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| Suggested by: || Nick Freear&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PGP Keysiging ==&lt;br /&gt;
&lt;br /&gt;
If any developers would like to exchange PGP Keys and expand their web of trust then this could be done during the Developer day.  &lt;br /&gt;
&lt;br /&gt;
I think it would be good to follow the  [http://www.debian.org/events/keysigning Debian guidlines] for this.--[[User:Dan Poltawski|Dan Poltawski]] 18:03, 10 October 2007 (CDT)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Developer conferences]]&lt;br /&gt;
* [http://moodle.org/mod/forum/view.php?id=55 General Developer Forum]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6974</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6974"/>
		<updated>2007-09-24T12:42:05Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Guidelines */, add section &amp;#039;Fix and test&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The WCAG 1.0 Guidelines:&lt;br /&gt;
# Provide equivalent alternatives to auditory and visual content.&lt;br /&gt;
# Don&#039;t rely on color alone (or bold or other styling)&lt;br /&gt;
# Use markup and style sheets and do so properly.&lt;br /&gt;
# • Clarify natural language usage&lt;br /&gt;
# Create tables that transform gracefully.&lt;br /&gt;
# • Ensure that pages featuring new technologies transform gracefully.&lt;br /&gt;
# • Ensure user control of time-sensitive content changes. &lt;br /&gt;
# Ensure direct accessibility of embedded user interfaces.&lt;br /&gt;
# Design for device-independence.&lt;br /&gt;
# • Use interim solutions.&lt;br /&gt;
# • Use W3C technologies and guidelines.&lt;br /&gt;
# Provide context and orientation information.&lt;br /&gt;
# Provide clear navigation mechanisms.&lt;br /&gt;
# • Ensure that documents are clear and simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix and test ==&lt;br /&gt;
&lt;br /&gt;
; Formal user testing : The most valuable and time-consuming.&lt;br /&gt;
; Informal user feedback : .&lt;br /&gt;
; Expert evaluation : .&lt;br /&gt;
; Developer evaluation : .&lt;br /&gt;
&lt;br /&gt;
A desirable process:&lt;br /&gt;
# Test&lt;br /&gt;
# Identify&lt;br /&gt;
# Specify/ report&lt;br /&gt;
# Discuss/ clarify&lt;br /&gt;
# Implement solution&lt;br /&gt;
# Re-test&lt;br /&gt;
# &#039;&#039;&#039;Iterate ...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6973</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6973"/>
		<updated>2007-09-23T12:12:07Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues remaining */, added section &amp;#039;Guidelines&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
Most of the relevant guidelines and standards are published by the [http://w3.org Worldwide Web Consortium] (W3C), including the [http://w3.org/WAI Web Accessibility Initiative] (WAI).&lt;br /&gt;
&lt;br /&gt;
* [http://w3.org/TR/WCAG10 Web Content Accessibility Guidelines 1.0] (WCAG10), published May 1999, there are useful documents including [http://w3.org/WAI/intro/wcag10docs.php errata, a checklist, &#039;&#039;&#039;techniques&#039;&#039;&#039;, quick tips and so on].&lt;br /&gt;
* WCAG 1.0 contains 14 guidelines (see below), sub-divided into 65 checkpoints numbered 1.1 to 14.3.&lt;br /&gt;
* The checkpoints are organised into 3 priority levels, 1 (A) &#039;&#039;must&#039;&#039;, 2 (double-A) &#039;&#039;should&#039;&#039;, 3 (triple-A) &#039;&#039;may&#039;&#039; - Moodle should aim for level 2 and some of level 3.&lt;br /&gt;
* Moodle is subject to other guidelines including the [http://w3.org/TR/ATAG10 Authoring Tool Accessibility Guidelines 1.0], see [http://w3.org/WAI/guid-tech.html this overview].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6972</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6972"/>
		<updated>2007-09-14T16:57:58Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues fixed */, links etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: [http://tracker.moodle.org/browse/MDL-8627 MDL-8627], MDL-11134.&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: [http://tracker.moodle.org/browse/MDL-9890 MDL-9890], Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, [http://tracker.moodle.org/browse/MDL-6548 MDL-6548]: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6971</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6971"/>
		<updated>2007-09-14T16:51:51Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues remaining */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list, for Moodle 2.0?&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms.&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039; [http://tracker.moodle.org/browse/MDL-9306 MDL-9306].&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* ...&lt;br /&gt;
* Language packs: fix XHTML, semantics.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: .&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6970</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6970"/>
		<updated>2007-09-14T16:48:18Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Issues fixed */, lots + added &amp;#039;Issues remaining&amp;#039; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues remaining ==&lt;br /&gt;
A todo list:&lt;br /&gt;
&lt;br /&gt;
* QuickForm fixes: review, complete.&lt;br /&gt;
* Old forms: replace remaining with QuickForms&lt;br /&gt;
* Course formats: replace layout tables, as per &#039;weekscss&#039;.&lt;br /&gt;
* Layout tables: remove remaining.&lt;br /&gt;
* Text editor: fix remaining issues/ replace.&lt;br /&gt;
* Language packs.&lt;br /&gt;
* Automated testing?&lt;br /&gt;
* Documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* QuickForm fixes: .&lt;br /&gt;
* Side block lists, MDL-6548: TODO.&lt;br /&gt;
* English language help files: completed MDL-9890.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
* Forms: QuickForms adopted for many - consistent rendering: labels, fieldset/legend, tableless.&lt;br /&gt;
* XHTML Strict drive.&lt;br /&gt;
* Text editor keyboard shortcuts.&lt;br /&gt;
* Tabs: replaced table with list.&lt;br /&gt;
* ...&lt;br /&gt;
* Side block lists: blog tags (inline), messages, news items, section links (inline).&lt;br /&gt;
* English help files: MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Consolidation&#039;&#039;&#039;&lt;br /&gt;
* Breadcrumb and left/right-arrow icons fixed: replaced with &#039;silent&#039; Unicode arrow characters.&lt;br /&gt;
* Side block lists, MDL-6548: admin bookmarks, (mnet hosts), rss client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (activity modules, admin, course list, participants, main menu, social activities - list render in print_side_block; online users).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6969</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6969"/>
		<updated>2007-09-12T12:10:11Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 2: accesshide */, WCAG10#gl-color link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would only otherwise be clear from formatting ([http://www.w3.org/TR/WCAG10/#gl-color WCAG Guideline 2, don&#039;t rely on colour alone]), for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6968</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6968"/>
		<updated>2007-09-05T13:53:01Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* What JAWS says */, background&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Screen reader|Screen readers]] are assistive software that verbalise (via synthesised speech, braille display or both) text displayed on a computer screen from the operating system (Windows and so on) or applications (typically word processors, email software, Web browsers).&lt;br /&gt;
JAWS (Job Access With Speech) for Windows is a popular screen reader from [http://freedomscientific.com/ Freedom Scientific]; competitors include Window-Eyes from GW Micro and SuperNova/HAL from Dolphin.&lt;br /&gt;
&lt;br /&gt;
Screen readers can often be configured/scripted for different levels of verbosity, different applications and so on.&lt;br /&gt;
However, most users concentrate on learning the keyboard shortcuts and don&#039;t know or don&#039;t have the confidence to change the configuration.&lt;br /&gt;
Expert evaluation therefore assumes that the default configuration is used.&lt;br /&gt;
&lt;br /&gt;
Below are examples of what the JAWS for Windows 7 screen reader verbalises for good and bad markup (HTML).&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
&lt;br /&gt;
JAWS and other screen readers have a &#039;&#039;forms mode&#039;&#039; to allow the user to input text in forms in a Web browser.&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6967</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6967"/>
		<updated>2007-09-05T11:49:33Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Pattern 2: accesshide */, &amp;#039;Wikipedia&amp;#039; links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 &lt;br /&gt;
* Bugs: 30-May-06, fixed [http://tracker.moodle.org/browse/MDL-5628 MDL-5628] for [[Wikipedia:Internet Explorer|IE 6]] Farsi [[Wikipedia:Right to left|RTL]] language.&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6966</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6966"/>
		<updated>2007-09-05T11:01:54Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
Following more expert evaluation, the Open University put together a comprehensive [[Moodle Accessibility Specification|Specification]] listing what needed fixing in parts of core Moodle and modules.&lt;br /&gt;
Moodle.com undertook what were judged to be high priority items from this list - see meta-bug [http://tracker.moodle.org/browse/MDL-7396 MDL-7396] (45 sub-tasks, 3 dependencies). Here is a summary...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6965</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6965"/>
		<updated>2007-09-05T10:27:52Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden by default for visual user), and graphic for breadcrumb separator.&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6964</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6964"/>
		<updated>2007-09-04T17:00:57Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
* MDL-6548, blog_menu block should use lists&lt;br /&gt;
&lt;br /&gt;
* ? 1.8 ? MDL-9890, Help should be well-formed...&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden for visual user).&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6963</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6963"/>
		<updated>2007-09-04T14:43:50Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Moodle 1.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden for visual user).&lt;br /&gt;
* Side blocks: heading marked up as &amp;amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new format plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6962</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6962"/>
		<updated>2007-09-04T14:42:10Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: &amp;#039;Issues fixed&amp;#039; outline: Moodle 1.5, 1.6 and so on&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues fixed ==&lt;br /&gt;
Note, some of the headline items here could be added to the release notes.&lt;br /&gt;
See also [[Release Notes]] | [[Old releases]] | [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.9 Beta ===&lt;br /&gt;
Released: 14th August 2007 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.8 ===&lt;br /&gt;
Released: 31st March 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.7 ===&lt;br /&gt;
Released: 7th November 2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.6 ===&lt;br /&gt;
Released: 19th June 2006&lt;br /&gt;
&lt;br /&gt;
Accessibility proposal from Open University identified problems and some solutions. Note, due to time constraints we did not evaluate or modify modules, the content of most side blocks and so on - most changes were to core.&lt;br /&gt;
&lt;br /&gt;
* ALT text: fixed for side-blocks, some themes, and in core. &lt;br /&gt;
* Standard theme &amp;amp; other 14 themes: removed layout table(s), &amp;lt;h1&amp;gt; used to markup headings (some to do).&lt;br /&gt;
* Breadcrumb trail: marked up as a list, with a heading (hidden for visual user).&lt;br /&gt;
* Side blocks: heading marked up as &amp;lt;h2&amp;gt;, added &#039;skip block&#039; links (needs review).&lt;br /&gt;
* Side blocks: removed nested layout tables, started using list markup (main menu, online users, list render in print_side_block).&lt;br /&gt;
* Calendar: fixed data table headers, summary, abbreviations, non-visual indication of &#039;today&#039;, next/previous links.&lt;br /&gt;
* Calendar style: improved colour contrast in standard theme for event backgrounds, links, weekend colours.&lt;br /&gt;
* Weekscss course format: new plug-in that does &#039;&#039;not&#039;&#039; use layout tables, based on the &#039;weeks&#039; course format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle 1.5 ===&lt;br /&gt;
Released: 5th June 2005&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6961</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6961"/>
		<updated>2007-08-30T12:50:27Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: /* Assistive technology */, expanding &amp;#039;layers&amp;#039; idea&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* Physical layer: specialist pointing devices, mice, joy-sticks, keyboards.&lt;br /&gt;
* Operating system layer: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* System specialisation layer: technology not part of the OS that tries to work with &#039;&#039;all&#039;&#039; software tools.&lt;br /&gt;
** Screen magnification.&lt;br /&gt;
** Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
** Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Software tool layer: audio browsers, plug-ins for Web browsers, word processors.&lt;br /&gt;
* Application layer: technology integrated in a web site, eg. Browsealoud, style sheet switching/ high-contrast, font size (bad?); ?&lt;br /&gt;
* Document layer: tagged PDFs, well-structured semantic PDFs, Word documents, HTML documents.&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6960</id>
		<title>Accessibility notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Accessibility_notes&amp;diff=6960"/>
		<updated>2007-08-30T12:37:28Z</updated>

		<summary type="html">&lt;p&gt;Nfreear: Added: &amp;#039;assistive technology&amp;#039;, &amp;#039;what JAWS says&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;These are DRAFT notes on what CSS classes, PHP functions and the so on have been added to Moodle 1.6 onwards to aid accessibility. They can be seen as design patterns, techniques, guidelines, and perhaps best practice(?)&lt;br /&gt;
&lt;br /&gt;
Based on a workshop at [http://moodlemoot.ca Moodlemoot 2007, Canada]&lt;br /&gt;
Lots for me to add/edit! Comments welcome!&lt;br /&gt;
[[User:Nick Freear|Nick Freear]] 11:38, 28 August 2007 (CDT)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assistive technology ==&lt;br /&gt;
&lt;br /&gt;
Technology to enable those with disabilities to use a computer can be categorised in terms of their &#039;&#039;distance&#039;&#039; from the user. For example:&lt;br /&gt;
&lt;br /&gt;
* Specialist pointing devices, keyboards.&lt;br /&gt;
* Screen magnification.&lt;br /&gt;
* Screen readers: JAWS, Window-Eyes, Thunder/WebbIE (speech or braille).&lt;br /&gt;
* Speech recognition: Dragon Naturally Speaking ...&lt;br /&gt;
* Operating system built-in: Mac Voiceover, Windows Narrator ...&lt;br /&gt;
* Web site built-in: Browsealoud, style sheet switching/ high-contrast, font size (bad?) ... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What JAWS says ==&lt;br /&gt;
&lt;br /&gt;
Examples of what the JAWS screen reader verbalises for good and bad markup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessibility design patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Pattern 1: unlist, inline-list ===&lt;br /&gt;
&lt;br /&gt;
Cascading style sheet (CSS) classes to remove default list-styles from HTML lists.&lt;br /&gt;
Class &amp;lt;code&amp;gt;inline-list&amp;lt;/code&amp;gt; also makes a list horizontal (at present only in side blocks).&lt;br /&gt;
&lt;br /&gt;
Difficulty: &#039;&#039;&#039;easy&#039;&#039;&#039; I hope. Please use!&amp;lt;br /&amp;gt;&lt;br /&gt;
Available: ? Moodle 1.8 December 2006 (MDL-6838, nested lists are safe).&amp;lt;br /&amp;gt;&lt;br /&gt;
Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .unlist, .inline-list {&lt;br /&gt;
   list-style: none;&lt;br /&gt;
   padding: 0;&lt;br /&gt;
   margin: 0;&lt;br /&gt;
 }&lt;br /&gt;
 .sideblock .content .inline-list li {&lt;br /&gt;
   display: inline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Use Count: 5+ (12 including deprecated &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;blocks/../block_blog_tags.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;ul class=&amp;quot;inline-list&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s20&amp;quot;&amp;gt;Accessibility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a .. class=&amp;quot; s10&amp;quot;&amp;gt;Test&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 2: accesshide ===&lt;br /&gt;
&lt;br /&gt;
CSS class for text to be &#039;seen&#039; by screen readers but not visual users.&lt;br /&gt;
&lt;br /&gt;
Text classed as &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; provides context for a non-sighted user, where the context or meaning would otherwise be clear from formatting, for example coloured text, or a &#039;&#039;silent&#039;&#039; character (TODO: link). The example below shows how additional text is provided to differentiate &#039;&#039;today&#039;&#039; from the other days in the Moodle calendar - visual differentiation is provided in the &#039;&#039;standard&#039;&#039; theme by a black border, and the &amp;lt;code&amp;gt;accesshide&amp;lt;/code&amp;gt; text is duplicated, in this case using Javascript (TODO: modify code! Javascript should use the title attribute.)&lt;br /&gt;
&lt;br /&gt;
Please, use cautiously &amp;amp;mdash; most necessary uses have already been identified.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: &#039;&#039;&#039;tricky&#039;&#039;&#039; &amp;amp;mdash; please put the same text in an adjacent/parent &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Available: Moodle 1.6 March 2006 (30-May-06: MDL-5628 &amp;lt;acronym title=&amp;quot;Internet Explorer&amp;quot;&amp;gt;IE&amp;lt;/acronym&amp;gt;6 Farsi &amp;lt;acronym title=&amp;quot;Right-to-left&amp;quot;&amp;gt;RTL &amp;lt;/acronym&amp;gt;language)&lt;br /&gt;
* Definition: &amp;lt;code&amp;gt;theme/standard/styles_layout.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .accesshide {&lt;br /&gt;
   position: absolute;&lt;br /&gt;
   top: -1000px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use Count: 29 !&amp;lt;br /&amp;gt;&lt;br /&gt;
* Example: &amp;lt;code&amp;gt;calendar/lib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&lt;br /&gt;
&amp;lt;td class=&amp;quot;day&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;day today&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;accesshide&amp;quot;&amp;gt;Today Friday, 27 April &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a onmouseover=&amp;quot;return overlib(.. &#039;Today Friday, 27 April&#039;)&amp;quot; ..&amp;gt;27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;weekend day&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pattern 3: left, right arrows ===&lt;br /&gt;
&lt;br /&gt;
PHP variables holding &#039;silent&#039; representations of right and left arrows (example ► &amp;lt;code&amp;gt;&amp;amp;amp;#x25BA;&amp;lt;/code&amp;gt;), to avoid misuse of characters including &amp;quot;greater than&amp;quot; &amp;gt;, &amp;quot;right angle quote&amp;quot; ». The variables are initialised by the function weblib.php: check_theme_arrows, unless they have first been defined in the theme config.php.&lt;br /&gt;
&lt;br /&gt;
* Difficulty: medium. Careful with fonts.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Available: Moodle 1.7&lt;br /&gt;
* Functions in &amp;lt;code&amp;gt;lib/weblib.php&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function check_theme_arrows()&lt;br /&gt;
function link_arrow_right($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function link_arrow_left($text, $url=&#039;&#039;, $accesshide=false, $addclass=&#039;&#039;)&lt;br /&gt;
function get_separator()&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;rarrow&lt;br /&gt;
$THEME-&amp;gt;larrow &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Associated CSS in &amp;lt;code&amp;gt;theme/standard/styles_fonts.css&amp;lt;/code&amp;gt;&lt;br /&gt;
 .arrow, .arrow_button input {&lt;br /&gt;
   font-family: Arial,Helvetica,Courier,&#039;Arial Unicode MS&#039;,sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Use count: ?&lt;br /&gt;
* Example PHP: weblib.php function print_navigation - breadcrumb trail.&lt;br /&gt;
* Also: Weekscss course format, Moodleforms .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Accessibility]]&lt;/div&gt;</summary>
		<author><name>Nfreear</name></author>
	</entry>
</feed>