Video Accessibility
Extensión de Chrome que lleva los atajos de teclado de YouTube a cualquier web con un vídeo HTML. Saltar al 30 % con el 3, cambiar la velocidad, bucle A-B, filtros, modo cine y eventos personalizados para pulsar u ocultar cualquier botón con una tecla. Solo en las webs que tú eliges y todo en local.




- atajos de serie
- 30
- atajos de serie
- idiomas
- 5
- idiomas
- datos enviados
- 0
- datos enviados
- tests (Vitest)
- 106
- tests (Vitest)
Qué hace
- Los atajos de YouTube, en cualquier
<video>. Del0al9para saltar del 0 al 90 %, espacio para pausar, flechas para avanzar, retroceder y cambiar el volumen,Mpara silenciar,Fpara pantalla completa,+y-para la velocidad yPpara picture-in-picture. - Lo que YouTube no trae. Bucle A-B, filtros de brillo, contraste y saturación, y un modo cine que oscurece el resto de la página.
- Eventos personalizados. Una tecla que pulsa u oculta cualquier elemento a partir de un selector CSS, por ejemplo el botón de "me gusta". Sin tecla, se ejecutan solos al aparecer el elemento.
- A tu medida. Todas las teclas se cambian, se pueden tener atajos distintos por web y, desde el popup, apagar un atajo solo en la web en la que estás.
- Solo donde tú dices. La lista de webs permitidas empieza vacía. Aviso en pantalla configurable, tema claro u oscuro y cinco idiomas. Sin telemetría, sin analíticas y sin servidores.
Cómo está hecho
El script solo entra en tus webs
El manifiesto pide acceso a todas las webs para no tener que aceptar un permiso nuevo en cada una, pero el content script no se declara para ninguna. El service worker lo registra en tiempo de ejecución con chrome.scripting.registerContentScripts, solo para los dominios de la lista, y lo vuelve a registrar únicamente cuando la lista cambia.
Encontrar el vídeo que estás viendo
El script busca vídeos también dentro de shadow DOM y en los iframes cuyo dominio está en la lista. Si hay varios, elige el que se está reproduciendo y, si no, el más grande.
Popup y opciones en Vue
El popup y la página de opciones son Vue 3 con Tailwind. Los ajustes viven en chrome.storage, y el content script los escucha para aplicar los cambios sin recargar.
Problemas que resolví
- No robar teclas. Si estás escribiendo en un campo, aunque esté dentro de shadow DOM, la extensión no hace nada. Tampoco con Ctrl, Alt o Cmd. Y un evento personalizado solo se queda la tecla si de verdad ha encontrado algo que pulsar.
- Clics que los reproductores sí escuchan. Muchos botones reaccionan a
mousedowny no aclick, así que el clic simulado lanza la secuencia completa. - Un espacio que nunca coincidía. El atajo por defecto para pausar se guardaba como
' 'y la tecla llegaba comospace. Ahora se normalizan los dos lados, también para los ajustes que ya estaban guardados. - Un aviso sin estilos. Al registrar el script en tiempo de ejecución, la hoja de estilos del aviso en pantalla se quedó fuera y el aviso salía como texto suelto debajo del vídeo. Ahora se registra junto al script, con un test que lo comprueba.