The simple thing that HTML really lacks is the ability to set multiple HREF targets for a single link:
Why would you need this?
1. To specify multiple hosts serving the same thing, ensuring that even if one host goes down, it’s still accessible (for instance, multiple sources for a pic you’re linking to)
2. To aid with domain name changes (linking to both old and new domains)
3. To keep information well-organized (for instance, there’s a well-known domain hosting this which is down now, but may be revived later, and you’re linking to a google cache copy or a mirror, and still want the main domain to be the logical “target”)
How to implement this:
Browsers shall try HREF links one after another, in the order of declaration. They MAY probe them all at once and choose the fastest server, or probe in batches. They MUST though choose one “default” HREF and display it in the interface, and navigate to other HREFs only after asking for permission from the user. They MAY let the user choose the HREF manually when clicking on link.
Correct: The browser randomly chooses second HREF as the default HREF. When the user clicks on link, the server is not accessible, so the browser asks for permission to use next randomly chosen (fifth) HREF. This one is not accessible too. The browser asks for permission to use next randomly chosen (first) HREF, which turns out to be available.
Correct: When the user clicks on link, the browser probes all the available HREFs. Since the default one is not accessible, the browser asks for permission to use the fastest available alternative.
Correct: When rendering the page, the browser probes all the available HREFs and uses the fastest available server as the default HREF.
Correct: When rendering the page, the browser uses it’s knowledge of which servers were available and which were down before, to guess the best default HREF without actually probing HREFs.