RFC Errata
RFC 6068, "The 'mailto' URI Scheme", October 2010
Source of RFC: IETF - NON WORKING GROUPArea Assignment: app
Errata ID: 3491
Status: Rejected
Type: Technical
Publication Format(s) : TEXT
Reported By: Stefan Ganzer
Date Reported: 2013-02-20
Rejected by: Pete Resnick
Date Rejected: 2013-03-08
Section 2 says:
domain = dot-atom-text / "[" *dtext-no-obs "]"
It should say:
domain = dot-atom-text
Notes:
Mailto URI has a hier-part that is either path-rootless or path-empty,
with an optional query component (see the syntax from RFC 3986 below).
In the path-rootless part, only characters in the set <pchar> are allowed.
Therefore the <domain> rule violates the general URI syntax, as it uses
the characters "[" and "]", which are not in <pchar>, to delimit a domain literal.
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
/ path-absolute
/ path-rootless
/ path-empty
path-rootless = segment-nz *( "/" segment )
segment = *pchar
segment-nz = 1*pchar
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
--VERIFIER NOTES--
The "Corrected Text" suggested by the reporter is incorrect. There are also several things in dot-atom-text which are also not in <pchar> ("#", "/", "?", "^", "`", "{", "|", "}"), so leaving dot-atom-text in place would not address the concern of the reporter. RFC 6068's answer is to simply say that, ABNF notwithstanding, some of the characters will need to be percent-encoded:
1. A number of characters that can appear in <addr-spec> MUST be
percent-encoded. These are the characters that cannot appear in
a URI according to [STD66] as well as "%" (because it is used for
percent-encoding) and all the characters in gen-delims except "@"
and ":" (i.e., "/", "?", "#", "[", and "]"). Of the characters
in sub-delims, at least the following also have to be percent-
encoded: "&", ";", and "=". Care has to be taken both when
encoding as well as when decoding to make sure these operations
are applied only once.
Now, this may have been a bogus way to do it (because you've got an ABNF which then has to be re-encoded to agree with generic URI syntax), but it was clearly agreed to when this document was published. Something may be wrong here, but this is not appropriate for a simple erratum.