roleform

一个地标区域,包含一组项目和对象,作为一个整体,它们组合在一起创建一个表单。

使用语义正确的 HTML 元素 <form> 意味着默认的 ARIA 语义,意味着不需要 role=form,因为你不应该将对比角色应用于已经是语义的元素,因为添加角色会覆盖元素的本地语义。

设置与默认隐式 ARIA 语义匹配的 ARIA 角色和/或 aria- *属性是不必要的,因为这些属性已由浏览器设置,所以不建议这样做。

<form action="">
  <fieldset>
    <legend>Login form</legend>
    <div>
      <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>
    </div>
    <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>
    </div>
  </fieldset>
</form>

你会在非语义元素上使用 role=form(不推荐,无效)

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