« Barbarism revisited | Main | Semantics in HTML »

January 08, 2007

Built in Semantics in HTML

I've been working on some things to do with semantics on the web, in particular in relation to HTML. As part of this, I've put together a list of all the elements and attributes of HTML that I consider have strong semantics ass ociated with them. I'd be interested in people's thoughts - any missing? Any of these not really "semantic"?

Thanks for your thoughts,

john

p.s. this will be published permantently online, as will the article I'm working on.

This is a rough and ready analysis of the built in semantics of HTML. I've left out the semantics of tables and their associated elements and attributes, as these are specific to one kind of markup (tabular data), as opposed to markup more generally. It by no means implies that such markup is not "semantic" (when used appropriately it of course is). Similarly, markup for forms is excluded, and again, of course this markup is semantic when used appropriately. I've also excluded deprecated elements and attributes, regardless of whether they are semantic or presentational. In addition, I've left out included (or "replaced" content (such as object, and img)). My reasoning here is that these are not so much for marking up content, and "transcluding" it from elsewhere.

Elements

a
Each A element defines an anchor
abbr
Indicates an abbreviated form
acronym
Indicates an acronym
address
The ADDRESS element may be used by authors to supply contact information for a document or a major part of a document such as a form
blockquote
BLOCKQUOTE is for long quotations (block-level content)
cite
Contains a citation or a reference to other sources
code
Designates a fragment of computer code

dfn

Indicates that this is the defining instance of the enclosed term


div, span

The DIV and SPAN elements, in conjunction with the id and class attributes, offer a generic mechanism for adding structure to documents

dl, dd, dt

Definition lists, created using the DL element, generally consist of a series of term/definition pairs (although definition lists may have other applications). The term is given by the DT element and is restricted to inline content. The description is given with a DD element that contains block-level content

del, ins

INS and DEL are used to markup sections of the document that have been inserted or deleted with respect to a different version of a document

em
Indicates emphasis

h1 .. h6

A heading element briefly describes the topic of the section it introduces

kbd

Indicates text to be entered by the user

ul, ol, li

unordered and ordered lists are in fact not defined in the specification. "Lists may contain: Unordered information. Ordered information. Definitions."

p

The P element represents a paragraph

q

Q is intended for short quotations (inline content) that don't require paragraph breaks

samp

Designates sample output from programs, scripts, etc

strong

Indicates stronger emphasis

var

Indicates an instance of a variable or program argument


Attributes

alt
For user agents that cannot display images, forms, or applets, this attribute specifies alternate text
class
This attribute assigns a class name or set of class names to an element ... For general purpose processing by user agents
cite
The value of this attribute is a URI that designates a source document or message. This attribute is intended to point to information explaining why a document was changed.
cite
The value of this attribute is a URI that designates a source document or message. This attribute is intended to give information about the source from which the quotation was borrowed
datetime
The value of this attribute specifies the date and time when the change was made
id
The id attribute assigns a unique identifier to an element ... For general purpose processing by user agents
lang
This attribute specifies the base language of an element's attribute values and text content
longdesc
This attribute specifies a link to a long description of the image
rel
This attribute describes the relationship from the current document to the anchor specified by the href attribute
rev
This attribute is used to describe a reverse link from the anchor specified by the href attribute to the current document
title
This attribute offers advisory

information about the element for which it is set


January 8, 2007 | Permalink

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341cbf7d53ef00e5503586418834

Listed below are links to weblogs that reference Built in Semantics in HTML:

Comments

"unordered and ordered lists are in fact not defined in the specification"

Hmm. By my reading, ordered lists are defined: An ordered list, created using the OL element, should contain information where order should be emphasized, as in a recipe; it's just unordered lists that aren't defined.

Posted by: Ben Buchanan | Jan 8, 2007 4:42:48 PM

How about the various elements that appear in head?
eg. title, meta, link & friends, as well as the profile attribute (and possibly xmlns?).

Also the hreflang attribute on a elements.

In certain circumstances I think br / can have semantic meaning as well (poems, etc. - probably a bit of contentious issue though).

Posted by: Lindsay Evans | Jan 8, 2007 5:03:22 PM

Ben,

what I meant was that the semantics of lists isn't defined. I mean, one the one hand, its pretty obvious what a list is. Yep, good point about ordered lists, I'll pay that - that quaifies as a definition :-) But a lot of it is pretty nebulous - p is a "paragraph" and so on.

thanks

j

Posted by: john Allsopp | Jan 8, 2007 7:04:27 PM

Lindsey,

I didn't mention it, but I also exclued head stuff - I think what I am specificaly interested in here is the semantics of visible HTML. But I'm not quite sure about that yet ;-)

In terms of br/, that's just too thorny - in a sense, there is an impled line element, but for poetry, it would probably make sense to have an explicit line element (even docbook isn't have this, afaik, which surprises me).

hreflang - I just thought it was too obscure and I got lazy - you are really on the ball there lindsey ;-)

thanks!

j

Posted by: john Allsopp | Jan 8, 2007 7:09:57 PM

HTML is very flexible. Great semantics.

Posted by: celebrity oops | Dec 12, 2009 8:35:46 PM

I think nowadays nobody using HTML, only PHP and AJAX

Posted by: drugs online | Aug 10, 2010 6:22:14 AM

nice post my friend

Posted by: brian adams | Nov 25, 2010 1:24:11 AM

HTML is very flexible. Great semantics...

Posted by: düzce haber | Dec 9, 2010 2:32:19 AM