The Document Object Model (DOM) is an API for HTML and XML documents. It defines these documents as tree structures, which can be accessed and manipulated.
Screen readers look into the DOM, not at what is displayed on the web page/application. Keyboard-only users navigate the DOM in order, from top to bottom, moving focus to navigate up and down. Blind and low-vision users will, likely, be unaware if elements on the web page have been visually re-ordered with CSS. This is why it's important to have DOM elements ordered logically. For example:
On a web page/application, the 'special' keys – Tab, Space, Esc etc. – can perform generic keyboard interactions. They move the focus to the next or previous element, or they open or close something, or they start or stop a process. Sometimes, their functions can be reversed or altered by holding down the Shift, Ctrl, or Alt keys simultaneously. A well designed keyboard interaction should behave in a way that a user would intuitively expect it to.
A visual interface expresses information about the state of a web page, or application, through a visual language. For example, links are a different colour to the rest of the text indicating that, if clicked, another page will load. Also, a link's colour may change if the cursor hovers over it. The cursor, too, may change from an arrow into a pointer. The problem is that users who cannot see a visual interface receive none of these visual cues. One way to overcome this problem is to express this basic language through speech: aural interaction.
If you think about it, we interact with our desktop computers mostly with our hands and our eyes. Our hands are on the keyboard or mouse; our eyes are looking at the screen. However, some users cannot make use of a screen or a mouse. They may be blind, or have low vision, or may not have fine motor skills with their wrists, hands and fingers.
If we don't make our websites univerally accessible, we risk losing out on the contributions these users have to make: their ideas, donations, bug fixes, purchases, stories etc.
Drupal 7 provides a form API for constructing both simple and dynamic forms. Dynamic forms display their fields based on user interactions with the form – such as selecting an option from a select list. There are really two ways to make a dynamic form:
If you haven't heard, someone has struck oil in Surrey – yes, in Surrey – but before you consider rushing to the home counties, the BBC news article I read last week reports that only a fraction of the oil is recoverable. The UK is not about to rival the big Middle East oil giants.
With a general election less than one month away the news will soon be filled with election predictions and statistics. Such election data is a perfect subject for a project I am currently working on at BrightLemon.