Tags
Tags
<div>Q: How do you annoy a web developer?</span>

HTML is a markup language used in web development, and is the subject of this comic. The comic employs multiple poor HTML practices while asking the rhetorical question of how best to annoy web developers, effectively answering the question that it poses.
In HTML, all elements (except self-closing elements like <img> ) should consist of an open and close tag of the same type <div>Like this</div> .
HTML (except in its formulation as an XML language—XHTML) has never been case-sensitive, but the practice of using uppercase tags for readability is long outmoded, and the mixing of cases in this example would definitely annoy a developer.
Another basic idea of HTML is that all elements should be properly nested. That is, any element whose open tag occurs inside a div must be closed before the div is closed.
NB: In practice, web browsers will error-correct nearly all these problems.
The rules of proper nesting also put restrictions on which tags can be placed where — "block" elements, such as <div> cannot be placed inside "inline" elements, such as <span> , and inline elements must be placed inside a block element of some kind. Thus, <span><div> is forbidden, even if the tags are closed in the proper order.
Further, web developers make a distinction between semantic and structural elements. Semantic elements contain a clue in their name as to what kind of an element they are — for example, an <article> tag contains an article, such as a blog post or news article, while an <ol> tag contains an o rdered l ist. (It's wise to note that this is not an absolute rule; it's possible to put non-article content in an <article> , it's just not recommended.) Semantic tags do not, however, indicate how their contents are to be displayed; your browser might display an <article> in the default font, layout, and placement, while mine, a screen reader , might ignore everything on the page except <article> s, and read <article> s in a soothing voice .
Structural tags, on the other hand, give no clues as to what they contain; they just indicate how a web page is to be laid out. <span> and <div> are structural tags; they can contain anything. Their definitions in HTML simply indicate that <div> is a block tag (it can affect both what the text looks like and where it is on the page; by default, it is displayed in a separate block from the rest of the text in the page, and has at least one line break before and after its display) and <span> is an inline tag: it affects what its text looks like, but not where it is on the page. Without additional attributes, it's impossible for a browser to tell what's supposed to be inside a <div> or a <span> , which means that my screen reader can't just pluck out the blog posts and read those.