To download this page, click here


The HTML5 Logo.

💾 Download this page! What's going on behind the scenes? Here's the code. Note - it doesn't require thousands of imported NPM libraries, a complex Docker set-up, or any AI-on-the-blockchain. <a href="" download="this.html">Download this page</a> HTML 5 introduced a new attribute for the anchor element - download. Rather than having to set your server up with Content Disposition headers - you can tell the browser that a click should result in a download, ra…

Continue reading →

I know how many microphones and cameras you have


Web browser asking for permission to access microphones. On the page, the number of microphones is displayed.

A curious little data leak, but one I struggle to care about. Perhaps useful for a bit of fingerprinting? Websites can access your system's camera and microphone. That's how modern video conferencing works in the browser. In an effort to retain user privacy, the browser asks the user for permission to use the camera and mics. No audio or video will be sent until the user agrees. But some metadata gets shared before you agree! Visit the WebRTC Detection Experiment site. You'll notice that…

Continue reading →

This blog strips off for CSS Naked Day


Firefox menu. Go to View, the Page Style, then No Style.

Half-a-dozen years ago, I proposed that web developers spend one day a year browsing without JavaScript. It's a great way to see how the web works when things break. Similarly, April 9th is CSS Naked Day. A chance to throw off the shackles of good design, and see the raw beauty of your HTML. Today is intended for websites to remove their own style sheets - as this blog has done. The idea behind this event is to promote Web Standards. Plain and simple. This includes proper use of HTML,…

Continue reading →

Zoom's forced app is irresponsible


Screenshot of the Zoom Website.

Due to COVID19, I'm using a wide range of video conferencing services. Those of us who have work-supplied laptops usually have locked-down hardware. No unauthorised apps can be installed. That's not a problem for Google Hangouts - it just works in any browser. No need to install plugins or apps. Voice and video just work. But Zoom - one of the most used VC services - falsely claims that users need to install an app to use it. I've had frustrated colleagues express their displeasure that they …

Continue reading →