aria-label 是否需要 type=button?

Is type=button necessary with aria-label?

我读到按钮类型的隐含值是 submit。要制作 UI 按钮,我还读到我们需要指定 type=button 属性。

例如:

<button type="button">Click me</button>

但是,我将此示例视为可访问按钮:

<button aria-label="undo">&#xE000;</button>

我注意到它没有 type=button 属性。

如果在按钮上定义了 aria-label,是否暗示该按钮属于 type=button

如果不是,上面的例子(撤消按钮)是不是不正确?

typearia-label 无关。

如果您没有在 <button> 上指定 type,则默认类型为 submit。如果您的按钮包含在 <form> 中,则按钮的 onclick() 将 运行 并且将提交表单。

如果您的类型是button,那么表单将不会被提交。只有按钮的 onclick() 会 运行.

参见 <button> 规范。

第二个示例具有 aria-label 的原因是按钮上没有可见文本。使用图标字体(如图像),为了让屏幕 reader 知道要为按钮宣布什么,指定 aria-label