Why the target property in link has an underscore?
- The
target
value can be the name of aframe
. - The
frame
could have the name "blank
". - Conflict!
There needs to be a way to disambiguate: Is this the name of a frame or is this the name of a reserved browsing context?
So let’s prefix any reserved name with a specific character and disallow this character for use as first character in other values.
It's not a convention; it's specified in the standard (4.0, 5) that the four reserved names for the target attribute are _blank, _self, _parent, and _top. You can have other target values, but they would be custom names which must start with a letter. Having the reserved ones start with an otherwise illegal value distinguishes them from custom named targets.