[4.1] Overview and summary of guideline 4.1

Summary of guideline 4.1 


Introduction

This document is meant to review guideline 4.1 and discuss the open issues
with this guideline. This summary is the result of an action item from the
December 11, 2003 teleconference where it was decided to assign the WCAG 2
guidelines to different people who can summarize the issues in order to get
more discussion about the guidelines. 
 
Guideline 4.1 reads: "Technologies are used according to specification" [1].
There is one level 1 succes criterion which can be summarized as "use markup
according to specification". The level 1 success criterion allows deviation
of that for the purpose of backward compatibility. To pass level 2,
deviations to accommodate for backward compatibility are NOT allowed. There
are no other succes criteria. 
 
The content of this document is devided into different topics. First, the
outstanding issues will be discussed. The open issues in Bugzilla will be
presented here, followed by a summary of the issues underlying these bug
reports. Next, possible solutions will be discussed, both previously
suggested solutions and new solutions. This is followed by an overview of
the dependencies between guideline 4.1 and other guidelines in WCAG 2. Next,
the underlying assumptions of the author will be discussed in brief.
Finally, a rationale is given why this guideline is important for WCAG 2.

Outstanding issues


Issues in Bugzilla 


Issue 263: Min level SC has no examples. Confusing? [2]

Description of the issue:
This issue refers to a previous version of the draft, where a minimum level
(level 1) requirement read "accessibility features and API's are used when
available." 
In the Feb 27, 2003 telecon it was decided to leave this success criterion
in even though we did not have any examples for it. The question raised in
this issue is whether this is confusing or not.

Issue 457: Remove items 2 and 3 [3]

This issue refers to the June 24, 2003 public working draft [4]. Sherman
Meeds comments that items 2 and 3 are not only superfluous but ambigious and
should be taken out. Item 2 reads "for Application Programming Interfaces
(API's), programming standards for the language are followed.", item 3 reads
"accessibility features and API's are used when available." 

Issue 472: Validity should always be required [5]

In the public comments mailing list, Tina Holmboe expresses her concern that
WCAG 2 is formulated too weakly. This comment refers to the June 24, 2003
public working draft [4]. 
 
She is afraid that the provision for backward compatibility gives carte
blanche for site developers to ditch the standards as long as they tell
users what they're up to. 
 
She suggests the following rewrite:
"All code, whether structure (such as HTML), presentational (css), logical
(script), or otherwise should follow a formal, published, standard. If
possible, the code should pass validity tests for that same standard. [a
note should be added that this isn't strictly possible for scripts, but
should ALWAYS be done otherwise]"

Issue 481: Clear definition of language used [6]

Referring to the public working draft of June 24, 2003 [4], Olivier Thereaux
makes the following remark:
"The language used, itself, must be clearly defined (with appropriate MIME
headers, doctype declaration, etc)."

Issue 497: non W3C techs and until user agents [7]

In a public comment on the public working draft of June 24, 2003 [4], Greg
Gay wonders whether 4.1 includes non-W3C technologies as well. He writes:
"Does this include nonW3C technologies: Javascript, Active X, Flash,... used
according to specification? Can developers use these  technologies if they
are designed with accessibility features. How would an evaluator determine
if Javascript or perhaps Flash has been used to  specification? Whose
specification for Javascript. I also would imagine Javascript can be used to
specification, but be innaccessible. In combination with the "device
independence" guideline, this might work"

Issue 500: Concession for necessary violations and workarounds [8]

In addition to the previous issue, Greg Gay emphasizes that in real world
situations, developers need to be able to use workarounds that violate
guidelines, 
provided they are necessary and they are documented in an accessibility
statement. He gives some examples (use of target-attribute to spawn new
windows, lack of support for font size in EM in Netscape 4) to illustrate
this necessity.

Issue 572: "use tech according to spec" is good technique, not accessibility
issue [9]

The US Access Board feels that this guideline seems to address good
authoring techniques and is not an accessibility issue.

Summary of issues


Is validity an accessibility issue?

The need to use technologies according to specification is a broader issue
than most of the guidelines in WCAG. In issue 572 as well as on the
mailinglist, people have wondered whether this guideline should be in WCAG
because they feel it's not about accessibility. Others have argued that
valid markup increases the chances of correct rendering of the content which
directly benefits accessibility.

Validition versus necessary violations

There seem to be two camps in the whole validation discussion. One camp says
you should always require valid code, since only then can user agents know
how to render the content. Issue 472 is a comment from this side. The other
camp says that violations of the specifications are sometimes necessary to
achieve the desired result. Issue 572 is a result of this viewpoint.

Do we include the use of API's in this guideline? 

The former versions of the WCAG 2 included two requirements for API's: "for
Application Programming Interfaces (API's), programming standards for the
language are followed.", and "accessibility features and API's are used when
available." Issue 263 finds the last one confusing since we don't give any
examples. Issue 457 suggests to remove both the items.

Applicability to non-W3C technologies

Guideline 4.1 only says to use technologies according to specification, but
not every technology has a well-defined specification. Many proprietary
standards exist, or technologies exist for which several companies use
different specifications. Do we allow the use of proprietary technologies?
How can you determine whether a proprietary technology has been used
according to specification? Why are there no success criteria dealing with
non-markup content?

Transitional standards allowed?

A certain level of backward compatibility is built in the transitional
variants of the HTML specification. It is not clear whether 4.1 means you
can only use the strict HTML specification or if the transitional variants
are allowed as well. In a thread on the mailinglist last week, Don McCunn
clearly thinks 4.1 means you can only use strict HTML whereas Yvette Hoitink
thinks transitional is allowed since this is following the (transitional)
specification. [10].

Proposed solutions


Previously proposed solutions


Remove requirements 2 and 3 

According to the change history of WCAG 2 [11], two of the requirements that
existed in previous drafts have been removed in the October 27, 2003 working
draft. These are:

*	for Application Programming Interfaces (API's), programming
standards for the language are followed 

*	accessibility features and API's are used when available

This means issue 263 is no longer an issue (there can be no confusion over a
deleted section) and issue 457 is resolved. The second requirement is now
covered by guideline 4.2, under level 2 success criteria. 

Move "deprecated features are avoided" into best practices

In July 2003, Gregg Vanderheiden suggested to move "deprecated features are
avoided" out of the success criteria into the best practices. [12]. Moving
this requirement to level 3 allows for the use of transitional versions of
the HTML standards.

New proposed solutions


Improve description of benefits of the guideline

With an improved descriptions of the benefits, it should be possible to make
it clear that following this guideline helps the accessibility of web
content, and that this guideline is an accessibility issue.
 
The current version of 4.1 includes a description of the benefit of 4.1
which says that it the benefits of following specifications are primarily
that assistive technologies and user agents can render the content according
to spec. This is not the only reason. If the author does not follow markup
specifications, it is left up to the user agent to interpret this
pseudo-markup. Since authors usually only test their content in a few
frequently used user agents, there is no way to predict how other user
agents (such as speech synthesizers or text browsers) will interpret this
data. 
Following specifications also means author cannot use newly invented tags
that are supported in some user agents but are not part of the specification
(for example the scrollbar colors in Internet Explorer, Marquee). This means
writing valid code is a step towards making the web content available across
different user agents. 

Add example with backward compatibility

Since backward compatibility questions keep popping up, it would be wise to
include an example of how and when to allow for backward compatibility. 

Clarify if transitional specifications are allowed or not

W3C already made provisions for backward compatibility in the HTML standards
by creating the transitional versions of HTML 4 and XHTML 1. The requirement
"depricated features are avoided" is interpreted by somepeople as "Only use
strict HTML" for HTML documents. Other people, including myself do not think
that this is the case, because WCAG would not require a higher level of
validity than the HTML specifications. If the markup follows HTML
specifications, whether it's HTML 4.01 transitional or XHTML 1.0 strict, you
pass. 
Because of the controversy of this point, it should be made clear whether
using transitional HTML is allowed, for instance by including an example
that uses transitional HTML.

Re-include requirement to follow specifications for non-markup content

The guideline says that all technologies must be used according to
specification, but in the checkpoints we only talk about markup. This makes
the success criteria for 4.1 much narrower than the guideline itself. The
eliminated requirements about API did address non-markup content.
 
What shall we require about non-markup content such as Java applets,
Javascripts etc.? Since no open standards exist for these technologies, it
would be hard to make this a level 1 requirement, but we might include a
level 2 or 3 requirement to follow specifications or guidelines for
non-markup content, if they exist for the chosen technology. This is similar
to the removed requirement "for Application Programming Interfaces (API's),
programming standards for the language are followed". Re-including this
requirement answers issue 497 because we then explicitely include other
technologies.

Dependencies between guidelines


Accessibility features

The requirement to use accessibility features if present has some relation
with all the guidelines of the 'Operable' principle. If an author does not
use the accessibility features, the content may become less operable. 
 
For accessibility features, there is some overlap with guideline 4.2.
Guideline 4.1 requires the use of accessibility features of the markup
language, whereas guideline 4.2 requires the use of accessible programmatic
interfaces.

Avoid unexpected behavior

When following the specifications, you reduce the chance of the occurrence
of unexpected behavior. This helps to meet guideline 2.5 ("Methods are
provided to minimize error and provide graceful recovery") and guideline 3.4
("Layout and behavior of content is consistent or predictable, but not
identical.") as well.  

Using structural elements for presentation

Using structural elements for presentation is not allowed by guideline 4.1
because that's not using the elements according to specification. This is
also covered to some extent by guideline 1.3: 'Information, functionality,
and structure are separable from presentation." 

Assumptions

I have assumed that the working group values validity, but recognizes
sometimes greater accessibility can only be achieved if the specifications
are broken. The reason I assumed this is because of provision for backward
compatibility in the formulation of the level 1 success criterion.
 
I have assumed that the main aim of this guideline is to use valid markup,
and that it doesn't matter which 'flavor' of the specification you choose,
as long as you document which and follow it strictly. In HTML terms, this
means I think writing a page in valid transitional HTML would satisfy the
checkpoints for guideline 4.1, even with "deprecated features are avoided"
as a level 1 success criterion. I do think this should be clarified. 
 
Also, I have assumed that guideline 4.1 was originally intended for all web
content, not just markup. If that's the case we should revisit some past
issues since the current success criteria deal with markup only. 

Rationale

This guideline benefits accessibility in different ways:

*	Valid markup increases the chances of correct rendering of the
content 

*	It forbids the abuse of structural elements for presentational
purposes and vice versa, which can be very confusing 

*	It stimulates the use of accessibility features of the markup
language


Author

This summary was written by Yvette Hoitink, January 2004 
Contact: y.p.hoitink@heritas.nl 

Notes

[1]. Unless stated otherwise, texts of guidelines and checkpoints are taken
from the latest internal draft of the WCAG 2, version November 17, 2003,
available at http://www.w3.org/WAI/GL/WCAG20/WD-WCAG20-20031117.html
[2]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=263a
[3]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=457
[4]. http://www.w3.org/TR/2003/WD-WCAG20-20030624/
[5]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=472
[6]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=481
[7]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=497
[8]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=500
[9]. http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=572
[10]. http://lists.w3.org/Archives/Public/w3c-wai-gl/2004JanMar/0019.html
[11]. http://www.w3.org/WAI/GL/WCAG20/change-history.html
[12]. http://lists.w3.org/Archives/Public/w3c-wai-gl/2003JulSep/0056.html

Received on Tuesday, 20 January 2004 11:49:33 UTC