Why the target property in link has an underscore?

  1. The target value can be the name of a frame.
  2. The frame could have the name "blank".
  3. 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.