HTML ARIA role="form"


A landmark region that contains a collection of items and objects that, as a whole, combine to create a form.

Using the semantically correct HTML element <form> implies default ARIA semantics, meaning role=form is not required as you should not apply a contrasting role to an element that is already semantic, as adding a role overrides the native semantics of an element.

Setting an ARIA role and/or aria-* attribute that matches the default implicit ARIA semantics is unnecessary and is not recommended as these properties are already set by the browser.

<form action="">
    <legend>Login form</legend>
      <label for="username">Your username</label>
      <input type="text" id="username" aria-describedby="username-tip" required />
      <div role="tooltip" id="username-tip">Your username is your email address</div>
      <label for="password">Your password</label>
      <input type="text" id="password" aria-describedby="password-tip" required />
      <div role="tooltip" id="password-tip">Was emailed to you when you signed up</div>

You would use role=form on non-semantic elements (not recommended, invalid)

<div role=form>
  <input type="email" placeholder="Your email address">
  <button>Sign up</button>