[Proposal] General relationship attribute for non-link semantic relationships

We have a very nice rel attribute, which has been part of HTML since the early days, but it is constrained to the three types of link element <link>, <a> and <area>… as if these are the only ways that anything can be related to anything else.

But what if we want to express other kinds of relationship between parts in an unambiguous, machine-readable way?

Consider these relationships (e.g. between datapoints, entries, cells, items or whatever):

  • supports/corresponds
  • addresses/handles
  • contradicts/negates
  • is an outlier/special case
  • is within/inside (a limit, set or boundary)
  • is beyond/outside (a limit, set or boundary)
  • is part of
  • relates to
  • includes
  • is (on) a boundary
  • matches
  • connects to
  • leads to
  • is correlated with
  • comes from
  • refers to
  • duplicates
  • is the same as
  • is opposite to
  • is similar to
  • is singled-out (different from “in focus”, and also from “selected”, because read-only/non-operable)
  • filters/reduces
  • generalizes/expands
  • is congruent with
  • is complete
  • is incomplete
  • is valid/approved
  • is “dirty”/unsaved
  • may be obsolete
  • has new content
  • is pronounced as
  • is a synonym of
  • is an antonym of
  • suggests/implies
  • is associated with
  • is current

This list is not exhaustive. Different problem domains will have their own jargon.

Something like rel for non-link element types would permit greater semantic richness, which would be good for SEO, accessibility and machine learning - ultimately, it would move us towards the holy grail called the semantic web.

Or… why don’t we open up rel, and permit it on all element types? We could also expand the range of tokens/values that are permitted in such cases.


Each new rel keyword would probably have to be a separate proposal. I suggest picking one that you think is most needed and making a case for it.

Why is that? The whole point is that there are multiple kinds of content relationship, and they are not (semantically) constrained to link elements.

Because the use-cases are different. Some use-cases are stronger. Others are weaker. I assume that browsers and search engines will only add support for features with strong use-cases.