@@ -3793,6 +3793,49 @@ can be either required or optional for implementations to recognize.
37933793For extension points that can't just be ignored when their extension isn't recognized,
37943794the registry should include at least 1 required entry.
37953795
3796+ <div class="example" heading="Link Relations" id="example-link-relation-registry">
3797+
3798+ Link relations are currently registered in a 3-part registry.
3799+ [[rfc8288#procedure|RFC 8288]] defines the [[IANA-RELATIONS inline]] registry
3800+ which accepts entries that "reference a freely available, stable specification."
3801+ [[MFREL inline]] defines a second registry
3802+ to which anyone with a wiki account can add.
3803+ This registry has a column for specifications,
3804+ but nobody enforces that the column is filled in
3805+ or that the specifications meet any particular quality requirements.
3806+ [[html#linkTypes]] then repeats a subset of these relation types
3807+ to define how they work in web browsers.
3808+
3809+ In an ideal world, [[RFC8288]] and [[MFREL inline]] would probably be a single registry,
3810+ with [[html#linkTypes|HTML]] defining browser behavior.
3811+ The current split is probably due to mistakes in the historical registry requirements.
3812+
3813+ The idea of <{a/rel}> as list of externally-defined keywords
3814+ dates to at least [[rfc1866 inline obsolete]] , in 1995, which said
3815+
3816+ > The REL attribute gives the relationship(s) described by the hyperlink.
3817+ > The value is a whitespace separated list
3818+ > of relationship names. The semantics of link
3819+ > relationships are not specified in this document.
3820+
3821+ The [[html401 inline]] , in 1999,
3822+ defined a list of [known link relations] (https://www.w3.org/TR/html401/types.html#type-links)
3823+ but continued to encourage authors to invent their own.
3824+
3825+ The IETF eventually defined the IANA registry in [[rfc4287 inline]] , in 2005,
3826+ and [[rfc5988 inline obsolete]] , in 2010.
3827+ These required specifications and expert review,
3828+ but by this time too many custom link relations were in use
3829+ to get them all specified and registered.
3830+ Even if the registry had been in place from the beginning,
3831+ we believe this is a case where implementers are too diverse
3832+ to even know what kind of specification to expect for registered elements.
3833+ The modern [[html#linkTypes|HTML]] table
3834+ is a good way to align browser implementations
3835+ on the subset of link relations that they react to.
3836+
3837+ </div>
3838+
37963839See [[qaframe-spec#extensions]] and [[RFC6709]] for
37973840more guidance on how to design extensibility.
37983841
0 commit comments