El Atributo ACCEPT

Se utiliza para limitar los tipos de archivos que los usuarios pueden seleccionar en el cuadro de diálogo de selección de archivos.
El atributo accept se utiliza en elementos <input type="file"> para limitar los tipos de archivos que los usuarios pueden seleccionar en el cuadro de diálogo de selección de archivos. Este atributo mejora la experiencia del usuario al guiarlo para elegir formatos válidos y reduce errores en formularios. Sin embargo, no es una medida de seguridad, ya que los usuarios pueden omitirlo. Por ello, siempre se requiere validación en el servidor.
Sintaxis básica
El atributo accept acepta:
-
MIME types (ej:
image/png,application/pdf). -
Extensiones de archivo (ej:
.pdf,.docx). -
Categorías generales (ej:
image/*para todas las imágenes).
Ejemplo básico:
<input type="file" accept="image/*, .pdf">
Este código permite seleccionar imágenes (cualquier formato) y archivos PDF.
Casos de uso comunes
1. Aceptar solo imágenes
Permite cualquier tipo de imagen:
<input type="file" accept="image/*">
En móviles, puede activar la cámara directamente si se combina con capture:
<input type="file" accept="image/*" capture>
Especificar formatos de imagen concretos
Limitar a PNG y JPEG:
<input type="file" accept="image/png, image/jpeg">
Aceptar documentos PDF
Usar MIME type o extensión:
<input type="file" accept="application/pdf"> <!-- O --> <input type="file" accept=".pdf">
Permitir múltiples tipos de archivos
Combinar formatos:
<!-- Imágenes PNG, documentos PDF y Word --> <input type="file" accept=".png, .pdf, .doc, .docx">
Archivos de audio o video
Aceptar audio (MP3) y video (MP4):
<input type="file" accept="audio/mp3, video/mp4">
Comportamiento en navegadores
-
Filtrado en el selector de archivos:
Los navegadores muestran solo los archivos que coinciden con los tipos especificados (ej: en Chrome, al usaraccept="image/*", se filtran imágenes). -
Compatibilidad:
Funciona en todos los navegadores modernos (Chrome, Firefox, Edge, Safari), pero algunos pueden ignorar ciertos MIME types. -
Soporte móvil:
En dispositivos, puede abrir la cámara o galería según el tipo (ej:accept="image/*"abre la cámara).
Limitaciones y buenas prácticas
-
No es una validación segura:
Los usuarios pueden modificar el atributo o enviar archivos no permitidos. Siempre valida en el servidor. -
Evita extensiones poco comunes:
Prioriza MIME types (ej:application/pdfen lugar de.pdf), ya que son más universales. -
Proporciona retroalimentación clara:
Indica al usuario los formatos permitidos (ej: "Sube solo imágenes PNG o JPG"). -
Prueba en múltiples navegadores:
Algunos MIME types pueden comportarse diferente (ej:text/csvvs.csv).
Ejemplo avanzado: Formulario para subir imágenes y documentos
<form> <label>Sube tu foto de perfil (PNG/JPG):</label> <input type="file" accept="image/png, image/jpeg" required> <label>Sube tu CV (PDF o Word):</label> <input type="file" accept=".pdf, .doc, .docx" required> <button type="submit">Enviar</button> </form>
Mejores prácticas
Combina con multiple para varios archivos:
<input type="file" accept="image/*" multiple>
Usa texto descriptivo:
Añade una etiqueta (<label>) o un mensaje (ej: "Formatos aceptados: PNG, PDF").
Optimiza para móviles:
Usa capture para imágenes o audio si necesitas acceder directamente a la cámara/micrófono:
<input type="file" accept="image/*" capture="environment"> <!-- Cámara trasera -->
Conclusión
El atributo accept es una herramienta clave para:
-
Mejorar la usabilidad de formularios de subida de archivos.
-
Guiar a los usuarios a seleccionar formatos válidos.
-
Optimizar la experiencia en dispositivos móviles.
Ejemplo final:
<input type="file" accept="image/*, .pdf" multiple aria-label="Sube imágenes o PDFs" >
¡Implementa accept para crear formularios más intuitivos y eficientes!