Hello everybody.
The idea is, as stated in the title, that one would be allowed to omit the name of the tag in the closing tag.
So instead of writing:
<foo><bar>Bla</bar></foo>
One could write
<foo><bar>Bla</></>
Originally, in old html, it was possible to write intertwined tags ( like <foo>B<bar>l</foo>a</bar>
), but it’s no longer allowed ( if it was ever allowed: it was certainly possible to do so with results, but maybe it’s because the browser was trying their best to make sense of the input).
XML has slowly been replaced by JSON, and I think that the fact that JSON doesn’t have this closing mechanism played a role in it. ( “}” doesn’t have a name in it ).
HTML5 isn’t (X) HTML, it can take some distance with the XML.
For the advantages: less mistakes, smaller source and simpler parsing for the browser ( which already keep track of what should be the next closing tag anyway). Also makes simpler the modification of a page ( you can change the tag by changing it in one place, you don’t have to report the modification on the closing tag ).
Of course it would still be valid to put names in closing tags. In fact, doing so regularly would become a way to check everything is properly closed above. For example, one may want to put explicitly the closing tag of a table, so if one of the tags above is not closed the browser will be able to detect it and report the error. And fix it too : close everything until you encounter the closing of the table.
I think it falls into the bucket “Reducing the redundancy of the information”.
Voilà.