I built this because standard accessibility tools (like the ones built into OSes or monitors) use a global color matrix that tints the entire screen. This works for images but ruins the contrast of black text (turning it muddy brown/blue), which makes reading long articles painful.
The Tech: Odilon injects SVG filters (feColorMatrix) into the shadow DOM, targeting only "semantic" visual elements (img, video, canvas, [role="img"]) while leaving text nodes untouched.
The Challenges:
Manifest V3: I stuck to vanilla JS for the content scripts to keep it lightweight and avoid framework overhead in the document_start phase.
The "CNN" Glitch: We hit massive compositing issues on sites with aggressive lazy-loading. The browser would lose the texture reference when applying SVG filters to standard DOM elements. I had to force GPU layer promotion using transform: translate3d(0,0,0) on targeted elements to stop the renderer from flickering.
It’s free and runs locally. Happy to answer questions about the V3 migration or the matrix math.
srirambhat•1h ago
I built this because standard accessibility tools (like the ones built into OSes or monitors) use a global color matrix that tints the entire screen. This works for images but ruins the contrast of black text (turning it muddy brown/blue), which makes reading long articles painful.
The Tech: Odilon injects SVG filters (feColorMatrix) into the shadow DOM, targeting only "semantic" visual elements (img, video, canvas, [role="img"]) while leaving text nodes untouched.
The Challenges:
Manifest V3: I stuck to vanilla JS for the content scripts to keep it lightweight and avoid framework overhead in the document_start phase.
The "CNN" Glitch: We hit massive compositing issues on sites with aggressive lazy-loading. The browser would lose the texture reference when applying SVG filters to standard DOM elements. I had to force GPU layer promotion using transform: translate3d(0,0,0) on targeted elements to stop the renderer from flickering.
It’s free and runs locally. Happy to answer questions about the V3 migration or the matrix math.