Я читал, что неявное значение для типа кнопки — submit. Чтобы сделать кнопки пользовательского интерфейса, я также читал, что нам нужно указать атрибут type=button.
Например:
<button type = "button">Click me</button>
Однако я видел этот пример как доступную кнопку:
<button aria-label = "undo"></button>
Я заметил, что у него нет атрибута type=button.
Если aria-label определен для кнопки, означает ли это неявно, что кнопка принадлежит type=button?
Если нет, то является ли приведенный выше пример (кнопка отмены) неверным?






type и aria-label не связаны между собой.
Если вы не укажете type на <button>, то тип по умолчанию — submit. Если ваша кнопка содержится в <form>, то будет запущена функция onclick() для кнопки, и форма будет отправлена.
Если ваш тип button, то форма не будет отправлена. Будет работать только onclick() для кнопки.
Причина, по которой второй пример имеет aria-label, заключается в том, что на кнопке нет видимого текста. Используется иконочный шрифт (как изображение), и для того, чтобы программа чтения с экрана знала, что объявлять для кнопки, указывается aria-label.
если ваша кнопка содержится в <form>, тогда вам нужен type = "button", если вы не хотите, чтобы кнопка автоматически отправляла форму. если ваша кнопка — это просто отдельный элемент на вашей странице (не в <form>), вам не нужен type = "button". в любом случае вам делать нужен aria-label = "undo"
поэтому правильный способ написать кнопку: <button aria-label = "undo" type = "button"></button> ?