<p>I was listening to a <a href="http://www.hanselminutes.com/default.aspx?showID=143" rel="noreferrer">recent episode of Hanselminutes</a> where Scott Hanselman was discussing accessibility in web applications and it got me thinking about accessibility in my own applications.</p>

<p>We all understand the importance of semantic markup in our web applications as it relates to accessibility but what about other simple enhancements that can be made to improve the user experience for disabled users?</p>

<p>In the episode, there were a number of times where I slapped my forehead and said "Of course! Why haven't I done that?"  In particular, Scott talked about a website that placed a hidden link at the top of a web page that said "skip to main content".  The link will only be visible to people using screen readers and it allows their screen reader to jump past menus and other secondary content.  It's such an obvious improvement yet it's easy not to think of it.</p>

<p>There is more to accessibility and the overall user experience than simply creating valid XHTML and calling it a day.</p>

<p>What are some of your simple tricks for improving the user experience for the vision impaired?</p>

[{'answer_id': 61404, 'author': 'Mendelt', 'author_id': 3320, 'author_profile': 'https://Stackoverflow.com/users/3320', 'pm_score': 1, 'selected': False, 'text': "<p>Biggest problem with screen readers is usually tables to position things on your page. Screenreaders can't really handle those. Put stuff in div's in your html and put them in a sensible order. Then position the div's on your page with css. Use tables to display content that should be in a table.</p>\n"}, {'answer_id': 61429, 'author': 'harriyott', 'author_id': 5744, 'author_profile': 'https://Stackoverflow.com/users/5744', 'pm_score': 2, 'selected': False, 'text': '<p>"Vision impaired" includes colour-blindness.  I used to work with someone who couldn\'t distinguish red from green too well, so any applications that used a traffic-light style interface was very difficult for him to use.  In the industry we were working in, alerts in rows were colour-coded, so another form of display was useful for him, such as an extra column in the row with the text of the alert type ("emergency", "warning" etc).</p>\n'}, {'answer_id': 61430, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>The code for many web pages is structured as:</p>\n\n<ol>\n<li>Header</li>\n<li>Top Navigation</li>\n<li>Left Navigation</li>\n<li>Content</li>\n<li>Footer</li>\n</ol>\n\n<p>When structured this way, then the hidden link for "Skip to Main Content" is beneficial. However, with CSS layout, you may be able to reorder this so that you have:</p>\n\n<ol>\n<li>Content</li>\n<li>Header</li>\n<li>Top Navigation</li>\n<li>Left Navigation</li>\n<li>Footer</li>\n</ol>\n\n<p>You then use CSS positioning and floats to move these different elements around on the screen to make the page look the way you want it to look.</p>\n\n<p>The main advantage to structuring a web page in this way is that if the browser doesn\'t support the CSS, then the content is first on the page. In addition to screen readers, this is beneficial for mobile devices and search engine spiders.</p>\n'}, {'answer_id': 61440, 'author': 'Nick Higgs', 'author_id': 3187, 'author_profile': 'https://Stackoverflow.com/users/3187', 'pm_score': 1, 'selected': False, 'text': '<p>For partially partially sighted we need to make sure text is not excessivly small and contrasts the background color substantially. We should also make sure text is resizable by using relative sizing units such as <em>em</em>\'s rather than absolute units like <em>px</em>\'s (although, in my opinion, this is becoming less of an issue as browsers are increasingly favoring zooming over text resizing).</p>\n\n<p>For users of screen readers, it\'s helpful to get a good idea of the way screen readers are actualy used. The following article presents guidlines based on observations of blind people browsing the web using screen readers; it\'s a little out of date now, but gives you a good feel for what will help screen reader users, and what won\'t:</p>\n\n<p><a href="http://redish.net/content/papers/interactions.html" rel="nofollow noreferrer">http://redish.net/content/papers/interactions.html</a></p>\n\n<p>Additionally, the American Foundation for the blind have a <a href="http://www.afb.org/Section.asp?SectionID=57&amp;TopicID=167" rel="nofollow noreferrer">section of their website dedicated to advice for web developers on how to cater for vision impaired users</a>.</p>\n\n<p>In addition to the visually impared, we need to consider those with disabilities that prevent them from using a mouse, and also those with neurological disabilities. If anyone can provide resources giving advice on how to cater for those individuals, that would be great.</p>\n'}, {'answer_id': 76043, 'author': 'kooshmoose', 'author_id': 7436, 'author_profile': 'https://Stackoverflow.com/users/7436', 'pm_score': 2, 'selected': False, 'text': "<p>It's been awhile since I've been at a job where we had to adhere to Section 508, but here's what I remember that hasn't been touched on by the other posters...</p>\n\n<ol>\n<li>Only use tables for data. Do not use tables for layout if you can avoid it.</li>\n<li>When using tables for data, your column headers should be nested in TH tags and you should use title and scope attributes. Your table tags should use the summary attribute.</li>\n<li>Images should all have a value for the alt attribute that describes what's going on in the image and if the image serves no purpose (it's a shim image or something similar) then the alt attribute should be set to empty string.</li>\n<li>Try using a text to speech reader and/or navigate only through the keyboard and/or turn off stylesheets. I believe you need to purchase JAWS, but I'm sure there are free screen readers out there. You need to experience a site through a screen reader to truly understand how difficult most web pages are to navigate without the cues that screen readers interpret.</li>\n</ol>\n"}, {'answer_id': 83681, 'author': 'Doug Moore', 'author_id': 13179, 'author_profile': 'https://Stackoverflow.com/users/13179', 'pm_score': 2, 'selected': False, 'text': '<p>Creating accessible pages is something that is hard to think about if you have never done it. However, once you learn the basic concepts it is very easy to do in 95% of the cases. I will mostly be repeating what others have said, but:</p>\n\n<ol>\n<li>Only use tables for tabular data</li>\n<li>Make sure you use the semantic tools available to you via HTML. This means using TH with a scope attribute. Use &lt;em&gt; instead of &lt;i&gt; and &lt;strong&gt; instead of &lt;b&gt;. Use the <strong>acronym</strong> and <strong>abbrev</strong> tags. Use definition lists. I can expand on these things if anyone wishes.</li>\n<li><p>One of the most important things is to use the <strong>label</strong> tag on input fields. For every input field, radio button, checkbox and textinput you should have:</p>\n\n<p>&lt;label for="username">Username:&lt;/label>&lt;input name="username" /></p></li>\n<li><p>Add a "skip navigation" or "skip to navigation" depending on where big chunks of text are. If you are working on a government site this should be second nature that everything you\'re creating allows you to skip repetitive information.</p></li>\n<li><p>Do not use colors for emphasis. </p></li>\n<li><p>Ensure that all of your text is resizable. This pretty much means don\'t use "px" in your css.</p></li>\n<li><p>I will re-emphasize this: <em>create semantic pages.</em> Use <strong>H</strong> tags for your titles. Use <strong>ul</strong>/<strong>li</strong> for navigation. </p></li>\n<li><p>Use the <strong>alt</strong> attribute on <em>all</em> images. If you have a spacer gif... well.. don\'t. Otherwise, explain what the picture is of and what its significance is to the content it is associated with. don\'t use "a chart" as your alt tag. Use "Chart of YTD finances: $5,000 Q1, $4,000 Q2, $8,000 Q3" or something similar.</p></li>\n<li><p>Provide closed captioning or transcripts for all audio and video components</p></li>\n</ol>\n\n<p>The key here is to provide those with visual, hearing and <em>motor</em> impairments the same experience as those with standard physical capabilities. If you can\'t tab into a field, a screen reader can\'t either. If you can\'t click on the text next to a check box to select it, the screen reader doesn\'t know the text is related to the check box. </p>\n\n<p>You should frequently view your site without stylesheets (ctrl-shift-s if you have Firefox and the <a href="https://addons.mozilla.org/en-US/firefox/addon/60" rel="nofollow noreferrer">Web Developer Toolbar</a>) to see if the page makes sense. If it doesn\'t make sense to you as a sighted individual, it won\'t make sense to someone using a screen reader.</p>\n'}, {'answer_id': 300912, 'author': 'NakedBrunch', 'author_id': 3742, 'author_profile': 'https://Stackoverflow.com/users/3742', 'pm_score': 3, 'selected': True, 'text': '<p>Check out <a href="http://www.standards-schmandards.com/index.php?show/fangs" rel="nofollow noreferrer">Fangs</a></p>\n\n<p><a href="http://www.standards-schmandards.com/index.php?show/fangs" rel="nofollow noreferrer">Fangs</a> is an in-browser tool for Firefox that emulates what a screen reader “sees” when visiting a Web page. Its function is simple: to output a transcript of what a screen reader will read out to a user when a Web page is visited. It’s a helpful tool for quickly analyzing if you’ve structured your content effectively so that it’s understandable and usable by vision-impaired individuals, without forcing you to learn to use (and purchase) a screen-reader application such as JAWS or Windows Eyes.</p>\n'}]
['https://Stackoverflow.com/questions/61399', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/3742/']