Web Share API y uso compartido iniciado por la persona
Diseña acciones de Web Share con activación explícita, destinos variables, errores claros y alternativas accesibles.
Quieres la documentación estructurada de Plataforma?
Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.
La Web Share API permite pedir al navegador que entregue un contenido elegido por la persona a una superficie de compartir del sistema operativo o del navegador. Es una transferencia mediada por la persona: no garantiza un destinatario ni que la entrega termine. Empieza con un control visible, valida los datos y conserva una alternativa para copiar el enlace o descargarlo.
La especificación W3C Web Share define el modelo y sus requisitos de seguridad. La guía de MDN, navigator.share() y navigator.canShare() describen la API y sus notas de compatibilidad. Consulta también los límites de permisos del navegador y los flujos web con privacidad.
Una acción deliberada
Usa un botón con nombre accesible. Los navegadores pueden exigir activación temporal de la persona, por lo que no abras la hoja al cargar, pasar el puntero o ejecutar un temporizador. Comprueba navigator.share y deja visible la alternativa cuando no exista. El contexto seguro es necesario, pero la política del navegador también puede rechazar la operación.
canShare() ayuda a validar una propuesta, no promete un destino ni una entrega. La promesa de share() puede rechazarse si la persona cancela, los datos no son válidos o el navegador no puede completar la transferencia. No borres un formulario ni cambies de página; informa del estado y permite volver a intentarlo.
Datos y privacidad
Construye título, texto, URL y archivos desde el contexto visible. No añadas identificadores de cuenta, notas privadas, tokens ni metadatos ocultos. Una URL privada debe conservar sus controles de acceso. No registres el texto, las URL con secretos ni el contenido de archivos en analítica por el solo hecho de intentar compartir.
Alternativas accesibles
Ofrece copiar un enlace, descargar una exportación o mostrar un enlace normal. Cada acción necesita una etiqueta visible y una ruta de teclado. Informa del éxito o del fallo de copiar sin asumir acceso al portapapeles. Conserva el foco, la posición y los datos del formulario cuando la hoja se cierra.
Prueba clic y teclado, cancelación, datos rechazados, API ausente, canShare no disponible y contexto no seguro. Registra resultados agregados como shared, cancelled o fallback-used, nunca el contenido privado.
El botón explica qué se compartirá.
La acción comienza con una decisión explícita.
La página conserva el formulario.
La cancelación no borra datos.
El contexto seguro limita el alcance.
La compatibilidad puede variar.
La URL canónica evita estados temporales.
Los enlaces privados mantienen autorización.
Los secretos no se incluyen en la URL.
Los archivos tienen nombre y formato visibles.
Copiar el enlace ofrece una salida local.
La descarga identifica su contenido.
El foco vuelve al control iniciador.
El estado se anuncia con texto breve.
No se reintenta automáticamente.
El destino decide qué acepta.
La página no promete entrega.
La disponibilidad no identifica al usuario.
La analítica usa resultados agregados.
El contenido privado queda fuera de los registros.
La alternativa funciona sin la API.
El teclado alcanza todas las acciones.
El diseño admite zoom y texto grande.
Las traducciones largas se prueban.
El contenido bidireccional conserva su orden.
El modo sin conexión mantiene el contexto.
Una exportación puede esperar.
Cada error ofrece el siguiente paso.
Un enlace normal sigue disponible.
La autorización se comprueba en el servidor.
Compartir no modifica permisos.
Un componente incrustado respeta su límite.
El anfitrión puede elegir otra alternativa.
Las pruebas verifican resultados visibles.
La hoja del navegador es externa.
La documentación evita promesas universales.
La revisión acompaña cada cambio.
La continuidad importa más que la interfaz.
La acción sigue siendo voluntaria.
La alternativa forma parte de la función.
El diseño conserva una salida clara cuando compartir no está disponible.
Lista práctica
Fuentes
Artículos Relacionados
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.