Discusión sobre si los elementos HTML pueden responder correctamente a los eventos de clic del usuario

Se conocen dos conjuntos de elementos HTML:

<input disabled />,
<button tabindex="0">,
<button (click)="foo($event)"></button>
<div tabindex="0"></div>,
<p (click)="foo($event)"></p>
<li role="checkbox" (keyup)="bar($event)"></li>

Primer conjunto de elementos correctos:

  1. <input disabled />: Este es el elemento correcto porque es un elemento de formulario y tiene disabledlos atributos establecidos. disabledLa propiedad deshabilita el cuadro de entrada para que no responda a los eventos de clic del usuario. Por lo tanto, tiene sentido que el usuario no pueda interactuar con él en el estado deshabilitado.

  2. <button tabindex="0">: Este es el elemento correcto porque es un elemento de botón y tiene tabindexel atributo establecido en 0. tabindexLa propiedad define el orden del elemento cuando se navega mediante el teclado; un valor de 0 significa que se puede enfocar y seleccionar mediante la navegación con el teclado. El usuario puede usar la tecla Tab en el teclado para mover el foco a este botón y luego presionar Enter o la barra espaciadora para activar el evento de clic.

  3. <button (click)="foo($event)"></button>: Este también es el elemento correcto porque es un elemento de botón y tiene configurado un controlador de eventos de clic (click)="foo($event)". Esto significa que cuando el usuario hace clic en este botón, foose llamará a la función JavaScript nombrada, pasando un objeto de evento como parámetro. Esto permite a los desarrolladores realizar acciones JavaScript personalizadas cuando el usuario hace clic en el botón.

Ahora, veamos el segundo conjunto de elementos erróneos:

  1. <div tabindex="0"></div>: Este es el elemento incorrecto porque es un <div>elemento que normalmente se usa para diseñar y separar contenido en lugar de para la interacción del usuario. Aunque establece tabindexel atributo en 0, haciéndolo enfocable, no se activará ningún comportamiento o evento predeterminado cuando el usuario haga clic en él, porque <div>el elemento no tiene un comportamiento predeterminado para eventos de clic. Esto puede causar confusión a los usuarios porque pueden esperar que este elemento realice una determinada acción, pero en realidad no responderá de ninguna manera.

  2. <p (click)="foo($event)"></p>: Este también es un elemento incorrecto porque <p>el elemento es para texto de párrafo y no debe usarse para la interacción del usuario. Aunque configura el controlador de eventos click (click)="foo($event)", este no es <p>el uso correcto del elemento. Por lo general, los usuarios no esperan que se active ninguna acción personalizada al hacer clic en el texto del párrafo, y esto puede generar una experiencia de usuario inconsistente.

  3. <li role="checkbox" (keyup)="bar($event)"></li>: Este también es el elemento incorrecto porque aunque tiene roleel atributo establecido en "casilla de verificación", lo que indica que tiene la función de una casilla de verificación, no es un elemento de casilla de verificación HTML estándar (como <input type="checkbox">). Al mismo tiempo, establece un controlador de eventos de teclado (keyup)="bar($event)", lo cual tampoco es apropiado porque la forma en que los usuarios normalmente esperan interactuar con las casillas de verificación es mediante clics del mouse, no mediante eventos de teclado. Este comportamiento inconsistente puede confundir a los usuarios.

En general, el primer conjunto de elementos es correcto porque son consistentes con la semántica de HTML y el comportamiento esperado por los usuarios, mientras que el segundo conjunto de elementos es incorrecto porque no se ajustan a la semántica de los elementos HTML y la interacción del usuario. El uso adecuado de elementos y atributos HTML es crucial para crear interfaces de usuario con un comportamiento consistente y predecible.

Supongo que te gusta

Origin blog.csdn.net/i042416/article/details/133530954
Recomendado
Clasificación