Known Primary Language Tag
A "language tag" is here to be understood as in the first paragraph of the RFC 5646 language tag syntax, i.e. a sequence of subtags separated by hyphens, where a subtag is any sequence of alphanumerical characters. Language tag that are not valid according to the stricter RFC 5646 syntax (and ABNF grammar) definition can still have a known primary language tag. User agents and assistive technologies are more lenient in what they accept. This definition is consistent with the behavior of the
:lang() pseudo-selector as defined by Selectors Level 3.
As an example,
de-hello would be an accepted way to indicate German in current user agents and assistive technologies, despite not being valid according to RFC 5646 grammar. It has a known primary language tag (namely,
As a consequence of this definition, however, grandfathered tags do not have a known primary language tag.