This is a straw proposal for using classes to convey information.
Classes are already used to convey meaning via presentation. For example, here are some of the classes in WCAG. Some of these classes , like "noprint", and maybe tocline2 or tocline3, are used internally, and there's no point in giving the end user access to the class names.
However, it would be useful to make some (though not all) of these accessible. For example, in WCAG document items of class "guideline" are visually distinctive... in yellow boxes, so a sighted individual can quickly scan through the document finding the guidelines. The blind user does not have an equally convenient way to do this (guidelines happen to be H3's, but not all H3's are guidelines).
There may be some standard sections that it's useful to jump to, like a table of contents, copyright notice, navigation bar. Sometimes there are ad-hoc ways of doing this, like putting a link to the contents on the top of the page. But it would be convenient to have this built in.
title
", for example
.guideline {background green: title: "guideline heading"}
.toc {background: yellow; title: "table of contents"}
title
s
title
attribute shall be ignored
title
..
This provides the functionality described in the section on Motivation..
Note that this proposal does not require us to standardize on any meanings for any classes. Instead, it gives the author freedom to decide what classes are "important" and give the user convenient access to them.
As discussed e.g. in the thread on "Stylish Semantics", the usual philosophy of style is that all meaning should be in the content, which means that semantics should be carried by the tag names H1 H2 strong etc. In this view, the style sheet should only carry presentation, and no meaning.
However, existing tags in HTML do not carry all the semantics that would be useful (e.g. there's no "guideline" tag). Furthermore, the HTML 4.01 discussion of class states:
The class attribute has several roles in HTML:
- As a style sheet selector (when an author wishes to assign style information to a set of elements).
- For general purpose processing by user agents. [emphasis added]
So we should not limit the use of "class" because of its use of style sheets.
It seems consistent with HTML 4.01 that at a minimum, the user
agent behavior described here should be available if we use the class name
instead of the title
.
However, title
is useful because
title
, to be
changed to accommodate users without rewriting the code.
The question remains: how to associate title
with class.
It could be done via RDF. For example, to associate the
title
"priority 1 checkpoint" with p1
<rdf:RDF> xmlns:rdf="http://www.w3.organizations/1999/02/22-rdf-syntax-ns#" xmlns:s="http://www.w3.organizations/class titles/"> <rdf:Description about="http://www.w3.organizations/wai-classes/p1"> <s:title>Priority 1 checkpoint </s:title> </rdf:Description> </rdf:RDF>
However, from a practical point of view, it's simpler to say
.p1 {title: "priority 1 checkpoint" }
Furthermore, from a philosophical point of view, one could argue that
title
is actually presentation: a particular
textual expression of the underlying abstract class. Different users
may have different needs and preferences. For example, an experienced
screenreader user may prefer
.p1 {title: "P one" }
since it produces less speech clutter.
One could always systematically, indeed automatically convert this use of class to XML, e.g. by wrapping any element of a class in an XML tag of the same name.
However, we're still left with the same question of how to assign a
title
to the XML classes... although there's another alternative,
to use XSL to assign the title
s.
content
Property
Instead of defining a new CSS attribute, we could consider re-using the existing CSS "content" attribute, for example
.p1:before { content: "priority 1 checkpoint" visibility: hidden}
(The :before
pseudo-element serves no purpose except to satisfy
the CSS specification) This would require no changes in CSS; just a change
in user agent behavior. The user agent would treat content as described above
for title
.
To further distinguish this use of content from its normal use, there could be an additional property, e.g. an unusual color
.p1:before { content: "priority 1 checkpoint"; visibility: hidden; color: #52CA8F}
These alternatives are of course ugly.