The address element

Let’s talk about doxing (also known as doxxing or doxxxxxxxing).

Doxing (from “docs” or documents) is when you release private and identifying information about someone in order to invite harassment, humiliation, and other kinds of trouble.

For the most part, doxing should be discouraged. However, if you should wish to make it public that the owner of gay fursona Colonel Fluffylumps is a conservative politician with a viciously homophobic voting record, I would fully support you in your endeavour.

Doxing typically reveals parts of the outernet (formerly the real world™️) on the internet (still very real, actually, just more mediated) so is inevitably a matter for HTML.

Semantically speaking, you might think the <address> element would be how you’d go about this, especially if the doxing should involve the victim’s physical address. Indeed, back in the days when HTML tags were shouty (written in all-caps like <ADDRESS>), the specification read, “this tag is for address information” . Fine. But the HTML5 definition is more specific: “The address element represents the contact information for its nearest article or body element ancestor.”

To put it another way, as the author of the web page in question, you can only use <address> if you are looking to dox yourself. Doxing yourself is a subcategory of playing yourself. Should you play yourself on the internet, expect to receive a GIF of DJ Khaled saying, “congratulations, you played yourself” (I don’t make the rules).

So how should someone go about coding any old address? Unfortunately, HTML does not include <yourAddress>, <someAddress>, <addressMeDaddy>, or similar. But you can create an address using something called Microdata. Please do not picture a pocket-sized Brent Spiner, I beg you.

Microdata constitutes a set of agreed vocabularies for things like people, places, events, and products. Adding Microdata to your HTML enriches the machine-readable information it has to offer. Making your site more machine-readable makes it easier for search engines and other third parties to process your content. How much of this extra data is processed, and in what way, is up to those parties. Adding this extra (structured) data simply makes your web pages more articulate.

For a postal address, the less-than-cryptically named PostalAddress vocabulary is applicable. This is defined here: https://schema.org/PostalAddress. Since our aim is to dox an individual, we should be using PostalAddress combined with Person (https://schema.org/Person). Here is how that might look:

<div itemscope itemtype="https://schema.org/Person">
  <span itemprop="name">Berndt Fascismo AKA Colonel Fluffylumps</span>
  <img src="brent.jpg" itemprop="image" alt="Berndt Fascismo’s greasy noggin"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">1600 Pennsylvania Avenue</span>
    <span itemprop="addressLocality">Washington</span>, 
    <span itemprop="addressRegion">District Of Columbia</span>, 
    <span itemprop="postalCode">20500</span>
</div>

Note how some elements have itemscope and itemtype attributes. These apply their chosen vocabulary to all the HTML elements inside them. Putting HTML elements inside other HTML elements is sometimes called nesting and it can have semantic implications. In this case, the nesting indicates the Postal Address belongs to the Person and the streetAddress belongs to the PostalAddress.

This means streetAddress is actually nested to more than one “level”. Depending on which elements you’re using, it’s often permissible to nest HTML elements to as many levels as you see fit.

<div>
  <div>
    <div>
      <div>
        <div>
          <div><!-- woah, that’s deep --></div>
        </div>
      </div>
    </div>
  </div>
</div>

Here is where the bird/nest analogy breaks down. You are unlikely to observe birds stacking multiple nests to make twig-based towers. While this may present an interesting architectural challenge to the bird, it is not especially conducive to them raising their young.


Not everyone is a fan of my writing. But if you found this article at all entertaining or edifying, I do accept tips. I also have a clothing line: