Ostatnio pisałem o wieloletnim konflikcie pomiędzy WHATWG i W3C. Nie spodziewałem się jednak, że przynajmniej częściowo zostanie zażegnany – i to tak pokojowo.

Ale co się stało?

Dużo. Po pierwsze wspomniany w poprzednim wpisie PR został włączony do specyfikacji HTML LS. To zdecydowanie upodobniło definicję main w HTML LS do tej w HTML 5.x. Na tym się jednak nie skończyło. Anne van Kesteren przygotował bowiem drugi PR, który został zmerge’owany dzisiaj (23 stycznia 2018), a który to usuwał ostatnią poważną różnicę pomiędzy definicjami: możliwość używania więcej niż jednego widocznego elementu main. Tym samym słynne issue #100 zostało ostatecznie zamknięte. Obydwie definicje, choć brzmiały inaczej, mówiły już to samo. Ba, po zmianach poczynionych przez WHATWG wersja definicji main w HTML LS stała się wręcz lepsza od tej w HTML 5.x. Dlatego też niemal od razu W3C zdobyło się na gest i postanowiło zmienić swoją definicję na tą z HTML LS. I zrobiło to, raptem kilka godzin później.

Tym samym największa różnica pomiędzy HTML LS i HTML 5.x przestała istnieć.

Treść porozumienia

Główne zmiany w stosunku do starszej wersji z HTML 5.x to zamiana sformułowania main contents na dominant contents a także wprowadzenie pojęcia “hierarchicznie poprawnego elementu main” (ang. hierarchically correct main element).

Pierwsza zmiana jest dość dyskusyjna. Główna treść a dominująca treść niby oznaczają to samo, niemniej pierwszy zwrot wydaje się bardziej jednoznaczny. No ale dobra, można to przeżyć.

Druga zmiana ogranicza kontekst występowania main. Wcześniej HTML 5.x pozwalało umieszczać main w wielu dziwnych miejscach, np. w section. Obecna wersja wymusza, żeby main było bezpośrednio w body, ewentualnie div, form bez dostępnej nazwy (z powodu wymogów ASP .NET) lub custom elemencie. Możliwe jest też umieszczenie main bezpośrednio w html, jeśli tworzona przez nas strona nie posiada ani head, ani body (co jest dozwolone przez specyfikację).

I co teraz?

Nic. Choć definicje w końcu są takie same, specyfikacja HTML 5.x wciąż zawiera o wiele więcej przykładów, a także dodatkowych, pomocnych uwag, które wyjaśniają najczęstsze problemy z używaniem main. Z tego też powodu zdania nie zmieniam i wciąż uważam, że W3C umie lepiej w dostępność i semantykę. I WHATWG też to zauważyło, chociaż zajęło im to prawie 3 lata.

Niemniej dla mnie osobiście cała sytuacja jest bezprecedensowa i daje nadzieję, że w końcu dostępność stanie się integralną częścią procesów standaryzacyjnych, co wszystkim nam wyjdzie na dobre.