Las descripciones emergentes proporcionan una forma discreta de responder preguntas sobre la interfaz de usuario o agregar un poco de información o instrucciones a una interfaz. Ofrecen ayuda en el lugar necesario y ayuda contextual, y pueden informar el valor de las características. La descripción emergente aparece cuando los usuarios hacen clic, pasan el cursor por encima o llevan el foco a un elemento.
Las descripciones emergentes no son apropiadas para transmitir información o instrucciones que sean fundamentales para completar una tarea.
Deben utilizarse estratégicamente. Resista la tentación de saturar la interfaz de usuario con descripciones emergentes que no respondan a una necesidad evidente del usuario.
Do
Utilice descripciones emergentes para proporcionar información adicional, como por qué aparece un campo.
Don't
No incluya información esencial en descripciones emergentes.
Las descripciones emergentes tienen un fondo oscuro con texto blanco superpuesto que muestra claramente la información. Un signo de intercalación debe indicar de dónde proviene la descripción emergente.
Las descripciones emergentes constan de tres variantes que satisfacen diferentes necesidades de diseño:
Descripción emergente básica: Se utiliza para obtener información general. El texto es descriptivo y está relacionado con el campo. También puede incluir elementos interactivos, como botones o enlaces.
Descripción emergente de ícono: Ayuda a aclarar el nombre del botón de ícono interactivo y describe su función.
Descripción emergente de definición: Define una parte predefinida de texto.
En todos los aspectos del diseño de las interfaces de productos de Guidewire, utilice mayúsculas como se usan en las oraciones. No use mayúsculas en todas las palabras.
Use verbos en tiempo presente y voz activa siempre que fuera posible.
Use contracciones comunes para darle al texto un tono más natural e informal (pauta correspondiente al inglés).
Use un lenguaje sencillo. Evite la jerga innecesaria y el lenguaje complejo.
Las descripciones emergentes se muestran al pasar el cursor sobre ellas y cuando tienen el foco. Seguirán apareciendo mientras el usuario pase el cursor sobre el elemento.
Aunque la descripción emergente puede incluir enlaces y botones, es mejor no ocultar el contenido interactivo en esta.
El componente descripción emergente de Jutro muestra información complementaria adicional al hacer clic, pasar el cursor encima o recibir el foco. Si bien hay tres opciones para activar una descripción emergente, desde el punto de vista de la accesibilidad, recomendamos usar el clic o el foco. Esto se debe al hecho de que solo permitir que se muestre una descripción emergente al pasar el cursor significa que la información que contiene no estará disponible para los usuarios que solo usan teclado y lectores de pantalla.
Interacción con el lector de pantalla: El componente descripción emergente tiene el rol WAI-ARIA de 'tooltip' y hereda el atributo aria-live automáticamente. Por tanto, los lectores de pantalla narrarán el contenido dentro de la descripción emergente.
Interacción con el teclado: La descripción emergente se hace visible cuando está configurada para que se muestre en foco. También se hace visible cuando está configurada para que se muestre al hacer clic, ya que el evento de teclado está vinculado mediante programación al evento de clic.
Este componente de Jutro ha sido validado para cumplir con las pautas de accesibilidad de WCAG 2.2 AA en su configuración base predeterminada. Esto incluye garantizar que se cumpla lo siguiente:
La relación de contraste de los elementos textuales con respecto a su fondo es superior a 4,5:1.
El contenido no textual que debe transmitir significado (como íconos e indicadores de foco) tiene una relación de contraste de al menos 3:1 con sus colores adyacentes.
El elemento se puede operar con teclado, así como con mouse.
Se puede acceder al contenido mediante lectores de pantalla, como JAWS y VoiceOver.
El cumplimiento de los criterios de accesibilidad depende, en última instancia, de cómo se implementa y personaliza este componente. Los cambios realizados por el autor del contenido pueden afectar la accesibilidad. Para obtener más información sobre nuestro modelo de responsabilidad compartida, revise nuestra declaración completa sobre accesibilidad de Jutro.
Cuando se desestime o cierre la descripción emergente, asegúrese de mantener el foco en el elemento que la invocó.
Compruebe los umbrales de contraste de color entre el texto y su fondo si se aplican colores personalizados al elemento.
Note: Algunas configuraciones del componente descripción emergente no cumplen con la accesibilidad.
El activador 'Mouseenter' solo está disponible para usuarios de mouse. Si se llega al componente mediante el tabulador y, a continuación, se intenta activarlo, no se muestra la descripción emergente. Esto significa que la descripción emergente es inaccesible para los usuarios que dependen del uso del teclado.
Si establece 'Hide On Click' en false, no se cumpliría el requisito de WCAG 2.1 “Contenido al pasar el cursor o en foco” porque no es posible eliminar la descripción emergente. La descripción emergente puede ocultar el contenido que un usuario necesita leer.
Hay dos componentes diferentes que implementan las especificaciones de “descripción emergente”. Mientras que el componente Tooltip es capaz de admitir todas las situaciones, el componente TooltipIcon solo se tiene en cuenta cuando la descripción emergente está asociada a un ícono. Consulte la sección Ejemplos para ver casos de uso.
Descripción emergente
importReactfrom'react'; import{Tooltip,Button}from'@jutro/components'; exportconstBasicTooltip=()=>{ return( <Tooltipcontent="This is a tooltip"> <Buttonlabel="Move the cursor here"/> </Tooltip> ); };
TooltipIcon
import{TooltipIcon}from'@jutro/components'; importReactfrom'react'; exportconstTooltipIconBasic=()=>{ return<TooltipIcontext="This is a tooltip"/>; };
Asegúrese de comprender la superficie de la API de componentes del sistema de diseño, así como sus implicaciones, ventajas y desventajas. Obtenga más información en nuestra introducción a la API de componentes.
Warning: Cualquier propiedad de Tooltip no incluida en la siguiente lista se considera un detalle de implementación interna y no está sujeta a la política de cambios sin interrupciones.
If set to true, the tooltip disappears if a mousedown event is fired outside of it. If set to false, it is not possible to close the tooltip. If 'toggle' option is used, the tooltip will be closed when clicking on the element again. In all cases, trigger property needs to be set to 'click'.
Note: Es necesario que exista un ícono con el mismo nombre que el que se pasó en la propiedad icon, pero con el sufijo '-outlined', para establecer un ícono específico. Si no existe, el ícono predeterminado se mostrará siempre.
Information from Field Component to link tooltip with related field. This property is not to be used out of the context of the @legacy input components.
Information from Field Component to the Tooltip Icon about the position of the label. This property is not to be used out of the context of the @legacy input components.
Information from Field Component. If set to true, the label is displayed inline. This property is not to be used out of the context of the @legacy input components.
Problema conocido: el componente secundario requiere un forwardRef
Si Tooltip no funciona, es posible que se trate de un problema conocido: el componente secundario necesita un forwardRef para que la descripción emergente funcione.
La solución temporal para los componentes que no tienen forwardRef es encapsularlos en un <span>.
import{Badge,Tooltip}from'@jutro/components'; importReactfrom'react'; exportconstTooltipNoRef=()=>{ return( <Tooltip content="This badge does not have a forward ref but it really needs a tooltip" showOnInit > <span> <Badge value={7} type="primary" /> </span> </Tooltip> ); };
Si coloca un elemento que no puede recibir el foco dentro de un Tooltip, el elemento recibirá el rótulo aria-expanded="true". Este es incorrecto para HTML. Para evitar este problema, asegúrese de colocar solo elementos que puedan recibir el foco dentro de Tooltip.
Descripción emergente básica agregada a un componente Button. La descripción emergente se muestra cuando se posiciona el cursor sobre el botón.
importReactfrom'react'; import{Tooltip,Button}from'@jutro/components'; exportconstBasicTooltip=()=>{ return( <Tooltipcontent="This is a tooltip"> <Buttonlabel="Move the cursor here"/> </Tooltip> ); };
Puede activar la descripción emergente al hacer clic, llevar el foco o el cursor sobre el elemento. La descripción emergente se muestra en un lugar diferente según la propiedad placement.
import{Button,Tooltip}from'@jutro/components'; importReactfrom'react'; exportconstTooltipPlacementAndTriggers=()=>{ return( <> <Tooltip content="Tooltip displayed on the left" placement="left" trigger="click" > <Button label="Click trigger" style={{margin:'0 1rem 0 0'}} /> </Tooltip> <Tooltip content="Tooltip displayed on the top" placement="top" trigger="click focus" > <Button label="Focus trigger" style={{margin:'0 1rem 0 0'}} /> </Tooltip> <Tooltip content="Tooltip displayed on the right" placement="right" trigger="mouseenter" > <Buttonlabel="Mouse enter trigger"/> </Tooltip> </> ); };
Es posible decidir cuándo se cierra la descripción emergente después de que se activa por un evento de clic:
Cuando se haga un clic en otras partes de la pantalla.
Cuando se vuelva a hacer clic en el componente.
Nunca.
import{Button,Tooltip}from'@jutro/components'; importReactfrom'react'; exportconstTooltipHideOnClickOptions=()=>{ return( <divstyle={{display:'flex',gap:'1rem',flexWrap:'wrap'}}> <Tooltip content="Click outside to close" placement="top" trigger="click" > <Buttonlabel="hideOnClick = true"/> </Tooltip> <Tooltip content="Click again on the button to hide" placement="top" hideOnClick="toggle" trigger="click" > <Buttonlabel="hideOnClick = toggle"/> </Tooltip> <Tooltip content="Cannot be closed" placement="top" hideOnClick={false} trigger="click" > <Buttonlabel="hideOnClick = false"/> </Tooltip> </div> ); };
Cómo agregar una nueva línea en un mensaje de descripción emergente
Es posible tener varias líneas en una descripción emergente de 2 maneras diferentes.
Opción 1: interpolando el mensaje con un nuevo carácter de línea.
import{Button,Tooltip}from'@jutro/components'; importReactfrom'react'; exportconstTooltipNewlineInterpolate=()=>{ return( <Tooltip content={{ defaultMessage:'This is a tooltip {br} this is a new line', args:{br:<br/>}, }} placement="top" trigger="click" > <Buttonlabel="Click to open"/> </Tooltip> ); };
Opción 2: pasando un elemento JSX como contenido.
import{Button,Tooltip}from'@jutro/components'; importReactfrom'react'; exportconstTooltipNewlineJsx=()=>{ return( <Tooltip content={ <p> This is a tooltip <br/> this is a new line </p> } placement="top" trigger="click" > <Buttonlabel="Click to open"/> </Tooltip> ); };