I was rather surprised that this article doesn’t mention the other s-word, “syntax”. It shows up a little in the linked articles, but in general, this article omits it. Semantics are only half of the equation. For example, type theories are syntactic; categories are semantic.
I think that the phrase “semantic HTML” is not especially bad. HTML traditionally was used to specify how Web browsers ought to render a document; the HTML syntax was equipped with the semantics of page layout, fonts, colors, and other typesetting concerns. The “semantic HTML” movement aimed to give HTML intrinsic semantics which go beyond typesetting, partially by making new tags available, and partially by giving old tags new semantics. Further typesetting details were offloaded to CSS.
Maybe it’s those “intrinsic semantics” that are the problem. On one hand, HTML is still just syntax, and the “intrinsic” semantics are merely the semantics suggested by a standards body. On the other hand, I don’t know who would argue that e.g. <ol> does not have the denotational semantics of an ordered list; the syntax directly encodes the listing and the order, and any semantics would have to put in extra effort to ignore those properties. Maybe this tension is inherent to rich-text systems.
I think that the phrase “semantic HTML” is not especially bad. HTML traditionally was used to specify how Web browsers ought to render a document; the HTML syntax was equipped with the semantics of page layout, fonts, colors, and other typesetting concerns. The “semantic HTML” movement aimed to give HTML intrinsic semantics which go beyond typesetting, partially by making new tags available, and partially by giving old tags new semantics.
I wouldn’t call it especially bad, but there are several small reasons I think it’s slippery…
as the post argues, the use of “semantic” potentially obscuring the relevant perspective
I, at least (and I imagine others) default to reading “semantic HTML” as a thing (a set of tags), but the people/articles I’ve bumped into so far that have the best handle on what it means discuss it as a process. Here’s an example from wiki:
Semantic HTML is a way of writing HTML that emphasizes the meaning of the encoded information over its presentation (look). [source]
I think seeing it as a process makes it easier to reason about–but I don’t think it’s the obvious reading. Focusing on the process makes it easier to realize that “semantic HTML” isn’t just the toolbox; an even bigger part of it is not abusing elements that have a ~defined purpose for your own presentational reasons (and, better, understanding the defined purpose and using the element in line with it).
I think the name makes more sense relative to the status quo it was defined against, and is likely making less and less sense to newcomers as we get further from that status quo.
I eventually realized I was spending a lot of time talking myself through what I meant by different uses of the word semantic(s) (which my early drafts use frequently).
It sounds like the author just didn’t have a good handle on their own semantics. ;) All words are “leaky abstractions” to some degree: this is the danger of describing any complex concept using natural language, and isn’t unique to any one word. Limiting vocabulary can be useful sometimes, sure. One alternative is to state what you mean by it up front in any given communication, and be disciplined about how you use it from that point on.
I was rather surprised that this article doesn’t mention the other s-word, “syntax”. It shows up a little in the linked articles, but in general, this article omits it. Semantics are only half of the equation. For example, type theories are syntactic; categories are semantic.
I think that the phrase “semantic HTML” is not especially bad. HTML traditionally was used to specify how Web browsers ought to render a document; the HTML syntax was equipped with the semantics of page layout, fonts, colors, and other typesetting concerns. The “semantic HTML” movement aimed to give HTML intrinsic semantics which go beyond typesetting, partially by making new tags available, and partially by giving old tags new semantics. Further typesetting details were offloaded to CSS.
Maybe it’s those “intrinsic semantics” that are the problem. On one hand, HTML is still just syntax, and the “intrinsic” semantics are merely the semantics suggested by a standards body. On the other hand, I don’t know who would argue that e.g.
<ol>
does not have the denotational semantics of an ordered list; the syntax directly encodes the listing and the order, and any semantics would have to put in extra effort to ignore those properties. Maybe this tension is inherent to rich-text systems.I wouldn’t call it especially bad, but there are several small reasons I think it’s slippery…
as the post argues, the use of “semantic” potentially obscuring the relevant perspective
I, at least (and I imagine others) default to reading “semantic HTML” as a thing (a set of tags), but the people/articles I’ve bumped into so far that have the best handle on what it means discuss it as a process. Here’s an example from wiki:
I think seeing it as a process makes it easier to reason about–but I don’t think it’s the obvious reading. Focusing on the process makes it easier to realize that “semantic HTML” isn’t just the toolbox; an even bigger part of it is not abusing elements that have a ~defined purpose for your own presentational reasons (and, better, understanding the defined purpose and using the element in line with it).
I think the name makes more sense relative to the status quo it was defined against, and is likely making less and less sense to newcomers as we get further from that status quo.
It sounds like the author just didn’t have a good handle on their own semantics. ;) All words are “leaky abstractions” to some degree: this is the danger of describing any complex concept using natural language, and isn’t unique to any one word. Limiting vocabulary can be useful sometimes, sure. One alternative is to state what you mean by it up front in any given communication, and be disciplined about how you use it from that point on.