Jaki jest cel atrybutu „role” w HTML?

Ciągle dostrzegam atrybuty roli w pracy niektórych ludzi. Ja też tego używam, ale nie jestem pewien co do jego działania.

Na przykład:

<code><header id="header" role="banner">
    Header stuff in here
</header>
</code>

Lub:

<code><section id="facebook" role="contentinfo">
    Facebook stuff in here
</section>
</code>

Lub:

<code><section id="main" role="main">
     Main content stuff in here
</section>
</code>

Czy ten atrybut roli jest konieczny?

Czy ten atrybut jest lepszy dla semantyki?

Czy poprawia SEO?

Można znaleźć listę róltutaj, ale widzę, że niektórzy ludzie tworzą własne. Czy jest to dozwolone czy prawidłowe użycie atrybutu roli?

Jakieś myśli na ten temat?

questionAnswers(4)

yourAnswerToTheQuestion