<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>w3c &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/w3c/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Mon, 09 Feb 2026 10:22:21 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>w3c &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Building a physical  tag!]]></title>
		<link>https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/</link>
					<comments>https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 21 May 2020 11:22:02 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[stickers]]></category>
		<category><![CDATA[w3c]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35053</guid>

					<description><![CDATA[This is the latest of my many terrible lockdown-induced ideas.  I&#039;m saving money on commuting. So I&#039;m spending it on tech-crap I really don&#039;t need.  I bought a new laptop sticker.  Anyway, enough waffle, here&#039;s the end result:      This uses 2-frame lenticular printing.  History  No browser supports the &#60;blink&#62; element any more. It used to make text blink.  It was a silly idea that got out of…]]></description>
										<content:encoded><![CDATA[<p>This is the latest of my many terrible lockdown-induced ideas.  I'm saving money on commuting. So I'm spending it on tech-crap I <em>really</em> don't need.  I bought a new laptop sticker.</p>

<p>Anyway, enough waffle, here's the end result:</p>

<video controls="false" autoplay="true" muted="true" loop="true" width="640" height="352">
<source src="https://shkspr.mobi/blog/wp-content/uploads/2020/05/Blink-Tag.mp4" type="video/mp4">
</video>

<p>This uses 2-frame <a href="https://en.wikipedia.org/wiki/Lenticular_printing">lenticular printing</a>.</p>

<h2 id="history"><a href="https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/#history">History</a></h2>

<p><blink>No</blink> browser supports the <code>&lt;blink&gt;</code> element any more. <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blink">It used to make text blink</a>.  It was <a href="https://gizmodo.com/the-humble-origins-of-the-html-blink-tag-5903827">a silly idea that got out of hand</a>.</p>

<p>And now I have summoned it back to life in physical form.  I am bad. 
Please don't report me to the W3C.</p>

<h2 id="cost"><a href="https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/#cost">Cost</a></h2>

<p>Lenticular printing is <em>expensive</em>. Most places I found in the UK quoted me around £4 per sticker - but with a minimum order of 100. Youch! They used to give these away free with cereal packets, right?</p>

<p>I contacted a couple of sellers on Alibaba. They quoted around £2.20 per sticker - but with minimum quantities in the thousands. I'd probably have to pay import duty as well.</p>

<p>Eventually, I found <a href="https://twent3.co.uk/">TwenT3</a>. Their costs were a much more reasonable £100 for 100 cards. Also, they were the only place which were willing to sell me a <em>single</em> business card, as a sample. Total cost? A fiver - including postage!</p>

<p>I then used some double-sided tape to stick it to my <a href="https://shkspr.mobi/blog/2020/05/review-clevo-n151cu-lafite-iv-system76-darter-pro-entroware-proteus/">new Linux laptop</a>.</p>

<h2 id="e-ink"><a href="https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/#e-ink">E-Ink</a></h2>

<p>I did consider Eink - but even small displays are expensive. And frequent refreshes can damage the screen. I wanted to stick this to the back of a laptop, and I couldn't find a thin, battery powered board.</p>

<h2 id="whats-the-point"><a href="https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/#whats-the-point">What's the point?</a></h2>

<p>SHUT UP! YOU CAN'T TELL ME WHAT TO DO!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35053&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/05/building-a-physical-blink-tag/feed/</wfw:commentRss>
			<slash:comments>29</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2020/05/Blink-Tag.mp4" length="362377" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[Updating all the examples in the HTML5 Spec]]></title>
		<link>https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/</link>
					<comments>https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 09 Feb 2018 11:55:12 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[w3c]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=29075</guid>

					<description><![CDATA[I&#039;m currently helping to edit the HTML5 specification. As part of our preparations for HTML5.3 I&#039;ve started going through the provided examples and improving them. This blog post explains the what, why, and when of the process.  You can follow along on GitHub.  (As part of my job, I&#039;m lucky enough to be on the W3C&#039;s Advisory Committee. This is a personal blog post. If you think my ramblings…]]></description>
										<content:encoded><![CDATA[<p>I'm currently helping to edit the HTML5 specification. As part of our preparations for HTML5.3 I've started going through the provided examples and improving them.
This blog post explains the what, why, and when of the process.  You can <a href="https://github.com/w3c/html/issues/1182">follow along on GitHub</a>.</p>

<aside><small>(As part of my job, I'm lucky enough to be on the W3C's Advisory Committee. This is a personal blog post. If you think my ramblings reflect either my employer or the W3C, then you aren't tall enough to ride the Internet.)</small></aside>

<h2 id="how-is-the-spec-written"><a href="https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/#how-is-the-spec-written">How is the Spec Written?</a></h2>

<p>The spec is written using a mash-up of HTML and MarkDown which is then run through <a href="https://tabatkins.github.io/bikeshed">Bikeshed</a> to produce beautiful, pure, unsullied HTML.</p>

<p>There is a small problem with HTML... It's hard to display HTML in HTML.  That is, if I want to talk about the <code>&lt;nav&gt;</code> element, I need to escape the HTML elements and write:</p>

<pre>&lt;pre&gt;&amp;lt;nav&amp;gt;&lt;/pre&gt;
</pre>

<p>That's just about readable for short snippets. But consider this genuine (although admittedly extreme) example:</p>

<pre>&amp;lt;pre&amp;gt;&amp;lt;code class=&amp;quot;lang-c&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;keyword&amp;quot;&amp;gt;for&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;j&amp;lt;/span&amp;gt; = 0; &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;j&amp;lt;/span&amp;gt; &amp;lt; 256; &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;j&amp;lt;/span&amp;gt;++) {
  &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt; = (&amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt; &amp;amp; 0x1ffff) | (&amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;j&amp;lt;/span&amp;gt; &amp;lt;&amp;lt; 17);
  &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t6&amp;lt;/span&amp;gt; = (((((((&amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt; &amp;gt;&amp;gt; 3) ^ &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt;) &amp;gt;&amp;gt; 1) ^ &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt;) &amp;gt;&amp;gt; 8) ^ &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t3&amp;lt;/span&amp;gt;) &amp;gt;&amp;gt; 5) &amp;amp; 0xff;
  &amp;lt;span class=&amp;quot;keyword&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t6&amp;lt;/span&amp;gt; == &amp;lt;span class=&amp;quot;ident&amp;quot;&amp;gt;i_t1&amp;lt;/span&amp;gt;)
    &amp;lt;span class=&amp;quot;keyword&amp;quot;&amp;gt;break&amp;lt;/span&amp;gt;;
}&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
</pre>

<p>BLEURGH! YUK! Also, pretty hard to maintain. I've found dozens of examples which have errors in them; possibly because they're unreadable.</p>

<p>Can you <em>quickly</em> and <em>intuitively</em> spot the error in this example?</p>

<pre>&amp;lt;form&amp;gt;&amp;lt;div&amp;gt;&amp;lt;label&amp;gt;Customer name:;lt;input&amp;gt;&amp;lt;/label&amp;gt;&amp;gt;/div&amp;gt;&amp;lt;/form&amp;gt;
</pre>

<p>Luckily, there is a way we can write HTML <em>without</em> having to escape it.  The <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/xmp"><code>&lt;xmp&gt;</code></a> element!
<br></p>

<aside><small>(This element is obsolete in HTML5, but it works in all browsers and <a href="https://tabatkins.github.io/bikeshed/#xmp">is supported by Bikeshed</a>. I reckon it should come back!)</small></aside>

<h2 id="lets-write-some-examples"><a href="https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/#lets-write-some-examples">Let's write some eXaMPles!</a></h2>

<pre><code class="language-_">  &lt;xmp highlight="html"&gt;
    &lt;form&gt;
      &lt;div&gt;&lt;label&gt;Customer name: lt;input&gt;&lt;/label&gt;&gt;/div&gt;
    &lt;/form&gt;
  &lt;/xmp&gt;
</code></pre>

<p>Wow! Suddenly easier to read. Makes it quicker to edit and to find mistakes.</p>

<h2 id="how-to-fix-it"><a href="https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/#how-to-fix-it">How to fix it.</a></h2>

<p>Doing a quick <code>grep -rinc "pre highlight=\"html" | grep -v :0</code> through the spec showed around 600 examples.  Ideally I'd run some magic/tragic one line Unix command and everything would be fixed. Sadly, reality got in the way!</p>

<p>Some examples use unescaped markup to highlight specific parts of the examples. Some mix CSS and HTML. Some still use UPPERCASE element names. Some haven't been updated since the stone-age. Some are needlessly verbose and encumbered with excess verbiage which makes it, <i>inter alia</i>, complex to process.</p>

<p>So, I've been going through each example individually. Converting <code>&lt;pre&gt;</code> to <code>&lt;xmp&gt;</code> where possible, updating the examples, simplifying them where necessary, and generally giving them a good old tidy-up.</p>

<p>I'm indebted to two specific Atom plugins:</p>

<ul>
<li><a href="https://github.com/BrightIT/escape-utils">escape-utils</a> - for unescaping HTML</li>
<li><a href="https://github.com/Glavin001/atom-beautify">atom-beautify</a> - for automagically fixing indentation problems</li>
</ul>

<h2 id="youre-my-only-hope"><a href="https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/#youre-my-only-hope">You're my only hope!</a></h2>

<p>I <em>think</em> I've done this right. But I'm not sure. I've gone through each example I've changed and compared it to the original - they look fine. Nevertheless, I'm certain I've made mistakes <em>somewhere</em>.</p>

<p>I'd be jolly grateful if you could <a href="https://github.com/w3c/html/pull/1199">cast your eye over this ridiculously large diff</a> and point out where I've messed things up.</p>

<p>Seriously. Go here - <a href="https://github.com/w3c/html/pull/1199">https://github.com/w3c/html/pull/1199</a> - and get stuck in.</p>

<p>THANKS!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=29075&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2018/02/updating-all-the-examples-in-the-html5-spec/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[London Web Standards - State of the Browser]]></title>
		<link>https://shkspr.mobi/blog/2011/03/london-web-standards-state-of-the-browser/</link>
					<comments>https://shkspr.mobi/blog/2011/03/london-web-standards-state-of-the-browser/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 25 Mar 2011 11:05:41 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[w3c]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=3768</guid>

					<description><![CDATA[Here&#039;s the introduction I gave to London Web Standards for their State of the Browser conference.    Slideshare seem to have screwed up some of the formatting, but here are the slides.       State of the Browser - London Web Standards  from Terence Eden   Full details of the day on Lanyrd.  Thanks to Nick and the rest of the team for inviting me.  It was an excellent day full of demos,…]]></description>
										<content:encoded><![CDATA[<p>Here's the introduction I gave to <a href="http://www.londonwebstandards.org/">London Web Standards</a> for their <a href="https://web.archive.org/web/20110723143347/https://browser.londonwebstandards.org/">State of the Browser conference</a>.</p>

<iframe title="Introduction to State of the Browser" width="620" height="349" src="https://www.youtube.com/embed/OTlp1Hlq2yI?start=22&amp;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Slideshare seem to have screwed up some of the formatting, but <a href="http://www.slideshare.net/edent/state-of-the-browser-london-web-standards">here are the slides</a>.</p>

<iframe title="State of the Browser - London Web Standards" src="https://www.slideshare.net/slideshow/embed_code/key/aErdDHVOpq39bO" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""> </iframe>

<div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/edent/state-of-the-browser-london-web-standards" title="State of the Browser - London Web Standards" target="_blank">State of the Browser - London Web Standards</a> </strong> from <strong><a href="https://www.slideshare.net/edent" target="_blank">Terence Eden</a></strong> </div>

<p><a href="https://web.archive.org/web/20110529050453/http://www.lanyrd.com/2011/state-of-the-browser/">Full details of the day on Lanyrd</a>.</p>

<p>Thanks to Nick and the rest of the team for inviting me.  It was an excellent day full of demos, discussions, and debates.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=3768&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2011/03/london-web-standards-state-of-the-browser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
