Three pages from the Yr Meteorological Institute weather reporting site were selected for analysis. Failures already identified for one type of page are not reported for other types of pages, so the results are cumulative and unique. Apart from clarity of presentation, the rationale behind this is that once a single instance of a failure is identified, the developer would audit the entire site code for similar failures. In addition, the main purpose of this exercise is to highlight the usefulness — or lack thereof — of selected automated accessibility checkers in finding failures.
The results of analysis performed are consistent with the detailed individual assessment of selected tools. TotalValidator is focused mostly in parser-type failures which are easiest to find and code for in automated software, whereas Wave and Firefox Accessibility Evaluator are only of very limited use, but still valuable as tools due to their ability to identify problems hard to find for a human developer, such as contrast ration failures, instances of duplicated text, or broken references.
Out of the total of 64 failures identified during analysis, the human evaluator found 59, or 92.2%, TotalValidator found 9, or 14%, Wave found 11, or 17.2%, while the FAE extension found 12, or 18.8%.
Failure | Human | TotalValidator | Wave | FAE |
---|---|---|---|---|
The page has no real outline, or well-defined sections. There are no level-1 headings, only subheadings, even though clearly there are distinct content groups present | yes | no | yes | yes |
Subheadings are empty (containing only a non-breaking
space, )
|
yes | no | yes | yes |
The strong emphasis element is misused for
presentational purposes (bold text) — as a child of a
subheadings, as a child of the table caption, and as a
definition list term substitute, also on location
weather pages
|
yes | no | no | no |
Text search form controls are not marked up as such
(input type=search ) — instead, plain text
inputs are used
|
yes | no | no | no |
Not all distinct content is grouped in meaningful containers
(such as main , article , or
section ). Generic layers
(div ) are used instead
|
yes | no | no | no |
Subheading content is linked, whereas the long text node sufficient for a separate paragraph should follow the heading as a real paragraph, with the relevant parts linked instead | yes | no | no | no |
Images with an empty alt attribute are
present
|
yes | yes | yes | yes |
Elements with an empty title are present
(title="" )
|
yes | yes | no | no |
Anchors with an empty title (see above) have child image
elements (img ). Titles relevant for the
anchors are used for the child image instead (Til forsiden på yr.no )
|
yes | no | no | no |
The site logo is not a descendant of a
header element
|
yes | no | no | no |
The language selector contains empty ins
elements, used for insertion of icons through
CSS. This is the task for CSS
generated content, whereas the ins element
should be used for marking up document changes instead.
Empty span elements are misused for the
same purpose in the location weather pages
|
yes | no | no | yes |
The language chooser is implemented through JavaScript,
but it will be inoperable in visual browsers with
scripting on and enhanced security, due to cross-domain
sharing of scripts (see XSS).
The same applies to Yr Toolson location weather pages |
yes | no | no | no |
Regardless of the language chosen (including if the
default Norwegian Bokmål is
retained), the page offers mixed-language content that
is not marked up with the lang attribute.
This is due to inadequate and prone-to-failure
server-side language detection. This failure applies
equally to text browsers
and to visual, script-enabled
browsers, also on location weather pages
|
yes | no | no | no |
Form search auto-suggestion is implemented with JavaScript. While the search form is usable without scripting, unskipable auto-suggestion results are still injected into the page, in a wrong language | yes | no | no | no |
The auto-suggestion code contains fake anchors with an
empty href attribute
|
yes | no | no | no |
The auto-suggestion result block is a list of locations. It is marked up with a layout table that has no ARIA roles assigned to them | yes | no | no | no |
Auto-suggestion result tables have no description, whether in the form of captions, summaries, a details element, or descriptive text in any way associated with them | yes | yes | no | yes |
Ornamental icons used for auto-suggestion result presentation are hardcoded, whereas CSS should have been used instead | yes | no | no | no |
The auto-suggestion result block includes raw, encoded XML markup: <Type> i <kommune>, <område> that has no place in an HTML document | yes | no | no | no |
Definition lists are not marked up as such. Instead, the
strong element is misused instead of the
definition term, dt , and a generic
span element is used to imitate the
definition description element, dd
|
yes | no | no | no |
Abbreviations such as f.eks. are not
marked up with the abbr element
|
yes | no | no | no |
Empty caption elements are present
(containing only a non-breaking space,
|
yes | no | no | no |
Redundant title text is used, identical to the raw anchor text content | yes | no | yes | no |
Although equipped with a descriptive title, numerical
variable values such as temperatures are marked up with
a generic span wrapper element, instead
of the var element
|
yes | no | no | no |
Table cells with img children elements have
identical, duplicated title text as said image elements,
and also as the alt content,
resulting in the same text being read three times (for
example: fog, fog, fog) in screen readers
|
yes | no | yes | no |
In data tables, there are other cells containing image children, where the descriptive title is erroneously applied to the cell instead of the content image | yes | no | no | no |
Spacer shims are used for layout | yes | no | yes | yes |
The map is implemented as an unskipable collection of
50+ repetitive content — absolutely positioned generic
layers and numerous images with no alt
attributes
|
yes | no | no | no |
The weather progress animation has a motion control, implemented through a button with no text content, only a title | yes | no | yes | no |
Lists are used for navigation without description,
preceding heading, or meaningful markup (e.g. the
nav element)
|
yes | no | no | no |
The figure element is not used for diagrams
with long description. The same applies to images which
do have a long description provided. On
location weather pages, the dl element is
misused for this purpose. The same applies to webcam
images and their descriptions on location weather pages,
and to meteogram diagrams for detailed weather pages
|
yes | no | no | no |
If an image has a long, multiple-lines description provided,
it is injected into the title attribute
instead of regular content, to save space, making this
content unavailable to sighted users unless they
navigate there with a device
|
yes | no | yes | no |
News snippets utilize the level-3 subheading as the only content, misusing the heading for a section that does not have content following the heading | yes | no | no | no |
The time element is not used to mark up
dates and times. Instead, the emphasis element,
em , is misused for this purpose
|
yes | no | no | no |
Inline frames do not have an associated title | yes | yes | no | yes |
Inline frames do not have fallback content | yes | no | no | no |
The page footer is not marked up as such (the
footer element), and its contents are
unskipable — instead, multiple generic
presentational layers are employed
|
yes | no | no | no |
The unmarked footer contains a hidden navigation list not accessible to visual browser users | yes | no | no | no |
The noscript element is used for
advertisements, with its contents incorrectly encoded,
mangling up the elements into a stream of meaningless
characters:
<img src="http://nrk.tns-cs.net/ |
yes | no | no | no |
Absolute values are used for font size (pixels) | yes | no | no | no |
Visual presentation on anchors relies solely on color, with underlines removed via CSS | yes | no | no | no |
Color values in CSS are coded incorrectly, in hexagonal form without the pound sign, resulting in the color declaration being dropped, which can lead to color mismatch for users | yes | no | no | no |
Aural styles are not used; in particular, the
speak: none declaration is not used in
combination with the display: none
declaration, wherever the latter is required
|
yes | no | no | no |
Meta refresh with a timeout is used | no | yes | yes | no |
Multiple links have the same text content | no | yes | yes | yes |
Insufficient contrast ratio on the page (below 7:1) | no | no | yes | yes |
Failure | Human | TotalValidator | Wave | FAE |
---|---|---|---|---|
The strong emphasis element is misused for
presentational purposes (bold text) — as a child of a
level-1 heading
|
yes | no | no | no |
The breadcrumb navigation list is unskipable | yes | no | no | no |
The contrast ratio for the breadcrumb navigation is below minimum acceptable level (3:1). Elsewhere, very light gray text color is used on white background for presentational purposes (to diminish the importance of the rain data table footer), creating severe contrast issues | yes | no | no | yes |
Meaningful markup (the nav element) is not
used for the breadcrumb navigation control
|
yes | no | no | no |
Fake JavaScript links are employed for content update information — unclickable in a visual browser | yes | no | no | no |
The content updates are marked up with a table without
a caption element. Given the presence of a
long summary, the details and
summary elements should have been used as
descendants of the caption element
|
yes | no | no | no |
Abbreviations are either not marked up as such
(such as PDF) with
abbr or marked inconsistently
(e.g. KL for klokken)
|
yes | no | no | no |
If the abbr element is used, the title
description is provided more than once
|
yes | no | no | no |
Absolute (pixel) widths are used for the 'tabbed' weather report type navigation. The values used are custom-tailored to the designer-chosen narrow font type, whereas users of other common fonts will face cut-off cell content | yes | no | no | no |
The usage of absolute widths on cells in combination with hover also results in the content jumping up and down, creating unnecessary, distracting motion | yes | no | no | no |
There are complex tables present with non-linear
structure — i.e. where the number of cells in a row or
column does not always correspond to the maximum number
of rows or columns in a table due to the presence of
colspan or rowspan attributes.
Cells in these complex tables have no headers ,
or id attributes used to associate cells
with their headers
|
yes | no | no | yes |
An empty (and obsolete) summary attribute
is used on a table, instead of a caption
|
yes | yes | no | no |
Rain data provides location information in the
title attribute, but not in the content
|
yes | no | no | no |
The em emphasis element is misused for the
purposes of distinguishing the authorship data,
resulting in an unnecessary tone change, whereas the
cite element should have been used instead
|
yes | no | no | no |
The list of nearby placesis not marked up as a list. Instead, a stream of anchors is used for this purpose, creating an unskipable link soup |
yes | no | no | no |
Ambiguous/insufficient text is used for anchors (e.g.
read more) |
yes | no | no | yes |
Elements with a duplicate id attribute are
used, a source of confusion for screen readers
|
no | yes | no | no |
There are multiple instances of links with identical text | no | yes | no | no |
No new issues have been found.