<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: web-standards</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/web-standards.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-05-23T20:24:48+00:00</updated><author><name>Simon Willison</name></author><entry><title>On the &lt;dl&gt;</title><link href="https://simonwillison.net/2026/May/23/on-the-dl/#atom-tag" rel="alternate"/><published>2026-05-23T20:24:48+00:00</published><updated>2026-05-23T20:24:48+00:00</updated><id>https://simonwillison.net/2026/May/23/on-the-dl/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://benmyers.dev/blog/on-the-dl/"&gt;On the &amp;lt;dl&amp;gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I learned a few new-to-me things about the &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt; element from this article by Ben Meyer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; can be followed by &lt;em&gt;multiple&lt;/em&gt; &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You can optionally group the &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt; elements in a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; for styling - but only a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can label them using ARIA.&lt;/li&gt;
&lt;li&gt;They've been called "description lists", not "definition lists", since &lt;a href="https://www.w3.org/TR/2008/WD-html5-20080122/#the-dl"&gt;an HTML5 draft in 2008&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So this is valid:&lt;/p&gt;
&lt;pre&gt;&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;h2&lt;/span&gt; &lt;span class="pl-c1"&gt;id&lt;/span&gt;="&lt;span class="pl-s"&gt;credits&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;Credits&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;h2&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;dl&lt;/span&gt; &lt;span class="pl-c1"&gt;aria-labelledby&lt;/span&gt;="&lt;span class="pl-s"&gt;credits&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;div&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;dt&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;Author&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;dt&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;dd&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;Jeffrey Zeldman&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;dd&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;dd&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;Ethan Marcotte&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;dd&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;div&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;dl&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Here's a useful note from Adrian Roselli on &lt;a href="https://adrianroselli.com/2025/01/updated-brief-note-on-description-list-support.html"&gt;screen reader support for description lists&lt;/a&gt;.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=48247325"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/screen-readers"&gt;screen-readers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="html"/><category term="screen-readers"/><category term="web-standards"/></entry><entry><title>Quoting Eric Meyer</title><link href="https://simonwillison.net/2026/Feb/15/eric-meyer/#atom-tag" rel="alternate"/><published>2026-02-15T13:36:20+00:00</published><updated>2026-02-15T13:36:20+00:00</updated><id>https://simonwillison.net/2026/Feb/15/eric-meyer/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://mastodon.social/@Meyerweb/116065151451468199"&gt;&lt;p&gt;I saw yet another “CSS is a massively bloated mess” whine and I’m like.  My dude.  My brother in Chromium.  It is trying as hard as it can to express the totality of visual presentation and layout design and typography and animation and digital interactivity and a few other things in a human-readable text format.  It’s not bloated, it’s fantastically ambitious.  Its reach is greater than most of us can hope to grasp.  Put some &lt;em&gt;respect&lt;/em&gt; on its &lt;em&gt;name&lt;/em&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://mastodon.social/@Meyerweb/116065151451468199"&gt;Eric Meyer&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-meyer"&gt;eric-meyer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="eric-meyer"/><category term="web-standards"/></entry><entry><title>Launching Interop 2026</title><link href="https://simonwillison.net/2026/Feb/15/interop-2026/#atom-tag" rel="alternate"/><published>2026-02-15T04:33:22+00:00</published><updated>2026-02-15T04:33:22+00:00</updated><id>https://simonwillison.net/2026/Feb/15/interop-2026/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://hacks.mozilla.org/2026/02/launching-interop-2026/"&gt;Launching Interop 2026&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jake Archibald reports on Interop 2026, the initiative between Apple, Google, Igalia, Microsoft, and Mozilla to collaborate on ensuring a targeted set of web platform features reach cross-browser parity over the course of the year.&lt;/p&gt;
&lt;p&gt;I hadn't realized how influential and successful the Interop series has been. It started back in 2021 as &lt;a href="https://web.dev/blog/compat2021"&gt;Compat 2021&lt;/a&gt; before being rebranded to Interop &lt;a href="https://blogs.windows.com/msedgedev/2022/03/03/microsoft-edge-and-interop-2022/"&gt;in 2022&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The dashboards for each year can be seen here, and they demonstrate how wildly effective the program has been: &lt;a href="https://wpt.fyi/interop-2021"&gt;2021&lt;/a&gt;, &lt;a href="https://wpt.fyi/interop-2022"&gt;2022&lt;/a&gt;, &lt;a href="https://wpt.fyi/interop-2023"&gt;2023&lt;/a&gt;, &lt;a href="https://wpt.fyi/interop-2024"&gt;2024&lt;/a&gt;, &lt;a href="https://wpt.fyi/interop-2025"&gt;2025&lt;/a&gt;, &lt;a href="https://wpt.fyi/interop-2026"&gt;2026&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here's the progress chart for 2025, which shows every browser vendor racing towards a 95%+ score by the end of the year:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Line chart showing Interop 2025 browser compatibility scores over the year (Jan–Dec) for Chrome, Edge, Firefox, Safari, and Interop. Y-axis ranges from 0% to 100%. Chrome (yellow) and Edge (green) lead, starting around 80% and reaching near 100% by Dec. Firefox (orange) starts around 48% and climbs to ~98%. Safari (blue) starts around 45% and reaches ~96%. The Interop line (dark green/black) starts lowest around 29% and rises to ~95% by Dec. All browsers converge near 95–100% by year's end." src="https://static.simonwillison.net/static/2026/interop-2025.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;The feature I'm most excited about in 2026 is &lt;a href="https://developer.mozilla.org/docs/Web/API/View_Transition_API/Using#basic_mpa_view_transition"&gt;Cross-document View Transitions&lt;/a&gt;, building on the successful 2025 target of &lt;a href="https://developer.mozilla.org/docs/Web/API/View_Transition_API/Using"&gt;Same-Document View Transitions&lt;/a&gt;. This will provide fancy SPA-style transitions between pages on websites with no JavaScript at all.&lt;/p&gt;
&lt;p&gt;As a keen WebAssembly tinkerer I'm also intrigued by this one:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md"&gt;JavaScript Promise Integration for Wasm&lt;/a&gt; allows WebAssembly to asynchronously 'suspend', waiting on the result of an external promise. This simplifies the compilation of languages like C/C++ which expect APIs to run synchronously.&lt;/p&gt;
&lt;/blockquote&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webassembly"&gt;webassembly&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jake-archibald"&gt;jake-archibald&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="css"/><category term="javascript"/><category term="web-standards"/><category term="webassembly"/><category term="jake-archibald"/></entry><entry><title>Removing XSLT for a more secure browser</title><link href="https://simonwillison.net/2025/Nov/5/removing-xslt/#atom-tag" rel="alternate"/><published>2025-11-05T22:24:57+00:00</published><updated>2025-11-05T22:24:57+00:00</updated><id>https://simonwillison.net/2025/Nov/5/removing-xslt/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/web-platform/deprecating-xslt"&gt;Removing XSLT for a more secure browser&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Previously discussed &lt;a href="https://simonwillison.net/2025/Aug/19/xslt/"&gt;back in August&lt;/a&gt;, it looks like it's now official:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Chrome intends to deprecate and remove XSLT from the browser. [...] We intend to remove support from version 155 (November 17, 2026). The &lt;a href="https://github.com/mozilla/standards-positions/issues/1287#issuecomment-3227145793"&gt;Firefox&lt;/a&gt; and &lt;a href="https://github.com/whatwg/html/issues/11523#issuecomment-3149280766"&gt;WebKit&lt;/a&gt; projects have also indicated plans to remove XSLT from their browser engines. [...]&lt;/p&gt;
&lt;p&gt;The continued inclusion of XSLT 1.0 in web browsers presents a significant and unnecessary security risk. The underlying libraries that process these transformations, such as &lt;a href="https://github.com/GNOME/libxslt"&gt;libxslt&lt;/a&gt; (used by Chromium browsers), are complex, aging C/C++ codebases. This type of code is notoriously susceptible to memory safety vulnerabilities like buffer overflows, which can lead to arbitrary code execution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I mostly encounter XSLT on people's Atom/RSS feeds, converting those to a more readable format in case someone should navigate directly to that link. Jake Archibald &lt;a href="https://jakearchibald.com/2025/making-xml-human-readable-without-xslt/"&gt;shared an alternative solution to that&lt;/a&gt; back in September.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=45823059"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xslt"&gt;xslt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jake-archibald"&gt;jake-archibald&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="chrome"/><category term="security"/><category term="web-standards"/><category term="xml"/><category term="xslt"/><category term="jake-archibald"/></entry><entry><title>XSLT on congress.gov</title><link href="https://simonwillison.net/2025/Aug/19/xslt/#atom-tag" rel="alternate"/><published>2025-08-19T20:40:50+00:00</published><updated>2025-08-19T20:40:50+00:00</updated><id>https://simonwillison.net/2025/Aug/19/xslt/#atom-tag</id><summary type="html">
    &lt;p&gt;Today I learned - via &lt;a href="https://github.com/whatwg/html/pull/11563"&gt;a proposal to remove mentions of XSLT from the HTML spec&lt;/a&gt; - that &lt;code&gt;congress.gov&lt;/code&gt; uses XSLT to serve XML bills as XHTML - here's &lt;a href="https://www.congress.gov/117/bills/hr3617/BILLS-117hr3617ih.xml"&gt;H. R. 3617 117th CONGRESS 1st Session&lt;/a&gt; for example.&lt;/p&gt;
&lt;p&gt;View source on that page and it starts like this:&lt;/p&gt;
&lt;pre&gt;&amp;lt;?&lt;span class="pl-ent"&gt;xml&lt;/span&gt;&lt;span class="pl-e"&gt; version&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;1.0&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;?&amp;gt;
&amp;lt;?&lt;span class="pl-ent"&gt;xml-stylesheet&lt;/span&gt;&lt;span class="pl-e"&gt; type&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;text/xsl&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="pl-e"&gt; href&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;billres.xsl&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;?&amp;gt;
&amp;lt;!&lt;span class="pl-ent"&gt;DOCTYPE&lt;/span&gt; &lt;span class="pl-e"&gt;bill&lt;/span&gt; PUBLIC "-//US Congress//DTDs/bill.dtd//EN" "bill.dtd"&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;bill&lt;/span&gt; &lt;span class="pl-e"&gt;bill-stage&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Introduced-in-House&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-e"&gt;dms-id&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;H5BD50AB7712141319B352D46135AAC2B&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-e"&gt;public-private&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;public&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-e"&gt;key&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;H&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-e"&gt;bill-type&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;olc&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt; 
&amp;lt;&lt;span class="pl-ent"&gt;metadata&lt;/span&gt; &lt;span class="pl-e"&gt;xmlns&lt;/span&gt;&lt;span class="pl-e"&gt;:&lt;/span&gt;&lt;span class="pl-e"&gt;dc&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;http://purl.org/dc/elements/1.1/&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dublinCore&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;title&lt;/span&gt;&amp;gt;117 HR 3617 IH: Marijuana Opportunity Reinvestment and Expungement Act of 2021&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;title&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;publisher&lt;/span&gt;&amp;gt;U.S. House of Representatives&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;publisher&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;date&lt;/span&gt;&amp;gt;2021-05-28&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;date&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;format&lt;/span&gt;&amp;gt;text/xml&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;format&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;language&lt;/span&gt;&amp;gt;EN&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;language&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;rights&lt;/span&gt;&amp;gt;Pursuant to Title 17 Section 105 of the United States Code, this file is not subject to copyright protection and is in the public domain.&amp;lt;/&lt;span class="pl-ent"&gt;dc&lt;/span&gt;&lt;span class="pl-ent"&gt;:&lt;/span&gt;&lt;span class="pl-ent"&gt;rights&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="pl-ent"&gt;dublinCore&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="pl-ent"&gt;metadata&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;form&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="pl-ent"&gt;distribution-code&lt;/span&gt; &lt;span class="pl-e"&gt;display&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;yes&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt;I&amp;lt;/&lt;span class="pl-ent"&gt;distribution-code&lt;/span&gt;&amp;gt; 
&amp;lt;&lt;span class="pl-ent"&gt;congress&lt;/span&gt; &lt;span class="pl-e"&gt;display&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;yes&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt;117th CONGRESS&amp;lt;/&lt;span class="pl-ent"&gt;congress&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class="pl-ent"&gt;session&lt;/span&gt; &lt;span class="pl-e"&gt;display&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;yes&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt;1st Session&amp;lt;/&lt;span class="pl-ent"&gt;session&lt;/span&gt;&amp;gt; 
&amp;lt;&lt;span class="pl-ent"&gt;legis-num&lt;/span&gt; &lt;span class="pl-e"&gt;display&lt;/span&gt;=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;yes&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&amp;gt;H. R. 3617&amp;lt;/&lt;span class="pl-ent"&gt;legis-num&lt;/span&gt;&amp;gt; 
&amp;lt;&lt;span class="pl-ent"&gt;current-chamber&lt;/span&gt;&amp;gt;IN THE HOUSE OF REPRESENTATIVES&amp;lt;/&lt;span class="pl-ent"&gt;current-chamber&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;p&gt;Digging into those XSLT stylesheets leads to &lt;code&gt;billres-details.xsl&lt;/code&gt; - &lt;a href="https://gist.github.com/simonw/64c9f172533203c09acbcf13a0bb67c4"&gt;gist copy here&lt;/a&gt; - which starts with a huge changelog comment with notes dating all the way back to 2004!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/political-hacking"&gt;political-hacking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xslt"&gt;xslt&lt;/a&gt;&lt;/p&gt;



</summary><category term="html"/><category term="political-hacking"/><category term="web-standards"/><category term="xslt"/></entry><entry><title>Giving software away for free</title><link href="https://simonwillison.net/2025/Apr/28/give-it-away-for-free/#atom-tag" rel="alternate"/><published>2025-04-28T16:10:58+00:00</published><updated>2025-04-28T16:10:58+00:00</updated><id>https://simonwillison.net/2025/Apr/28/give-it-away-for-free/#atom-tag</id><summary type="html">
    &lt;p&gt;If you want to create completely &lt;strong&gt;free software&lt;/strong&gt; for other people to use, the absolute best delivery mechanism right now is static HTML and JavaScript served from a free web host with an established reputation.&lt;/p&gt;
&lt;p&gt;Thanks to WebAssembly the set of potential software that can be served in this way is vast and, I think, under appreciated. &lt;a href="https://pyodide.org/"&gt;Pyodide&lt;/a&gt; means we can ship client-side Python applications now!&lt;/p&gt;
&lt;p&gt;This assumes that you would like your gift to the world to keep working for as long as possible, while granting you the freedom to lose interest and move onto other projects without needing to keep covering expenses far into the future.&lt;/p&gt;
&lt;p&gt;Even the cheapest hosting plan requires you to monitor and update billing details every few years. Domains have to be renewed. Anything that runs server-side will inevitably need to be upgraded someday - and the longer you wait between upgrades the harder those become.&lt;/p&gt;
&lt;p&gt;My top choice for this kind of thing in 2025 is GitHub, using GitHub Pages. It's free for public repositories and I haven't seen GitHub break a working URL that they have hosted in the 17+ years since they first launched.&lt;/p&gt;
&lt;p&gt;A few years ago I'd have recommended Heroku on the basis that their free plan had stayed reliable for more than a decade, but Salesforce took that accumulated goodwill and &lt;a href="https://blog.heroku.com/next-chapter"&gt;incinerated it in 2022&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It almost goes without saying that you should release it under an open source license. The license alone is not enough to ensure regular human beings can make use of what you have built though: give people a link to something that works!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/heroku"&gt;heroku&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webassembly"&gt;webassembly&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pyodide"&gt;pyodide&lt;/a&gt;&lt;/p&gt;



</summary><category term="github"/><category term="html"/><category term="javascript"/><category term="open-source"/><category term="web-standards"/><category term="heroku"/><category term="webassembly"/><category term="pyodide"/></entry><entry><title>Default styles for h1 elements are changing</title><link href="https://simonwillison.net/2025/Apr/11/default-styles-for-h1/#atom-tag" rel="alternate"/><published>2025-04-11T03:54:43+00:00</published><updated>2025-04-11T03:54:43+00:00</updated><id>https://simonwillison.net/2025/Apr/11/default-styles-for-h1/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/blog/h1-element-styles/"&gt;Default styles for h1 elements are changing&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Wow, this is a rare occurrence! Firefox are rolling out a change to the default user-agent stylesheet for nested &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; elements, currently ramping from 5% to 50% of users and with full roll-out planned for Firefox 140 in June 2025. Chrome is showing deprecation warnings and Safari are expected to follow suit in the future.&lt;/p&gt;
&lt;p&gt;What's changing? The default sizes of &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; elements that are nested inside &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;These are the default styles being removed:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;/* where x is :is(article, aside, nav, section) */&lt;/span&gt;
&lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;h1&lt;/span&gt; { &lt;span class="pl-c1"&gt;margin-block&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;0.83&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; &lt;span class="pl-c1"&gt;font-size&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.50&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; }
&lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;h1&lt;/span&gt; { &lt;span class="pl-c1"&gt;margin-block&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.00&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; &lt;span class="pl-c1"&gt;font-size&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.17&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; }
&lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;h1&lt;/span&gt; { &lt;span class="pl-c1"&gt;margin-block&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.33&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; &lt;span class="pl-c1"&gt;font-size&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.00&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; }
&lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;h1&lt;/span&gt; { &lt;span class="pl-c1"&gt;margin-block&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;1.67&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; &lt;span class="pl-c1"&gt;font-size&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;0.83&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; }
&lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;x&lt;/span&gt; &lt;span class="pl-ent"&gt;h1&lt;/span&gt; { &lt;span class="pl-c1"&gt;margin-block&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;2.33&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; &lt;span class="pl-c1"&gt;font-size&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-c1"&gt;0.67&lt;span class="pl-smi"&gt;em&lt;/span&gt;&lt;/span&gt;; }&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;The short version is that, many years ago, the HTML spec introduced the idea that an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; within a nested section should have the same meaning (and hence visual styling) as an &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;. This never really took off and wasn't reflected by the accessibility tree, and was removed from the HTML spec in 2022. The browsers are now trying to cleanup the legacy default styles.&lt;/p&gt;
&lt;p&gt;This advice from that post sounds sensible to me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Do not&lt;/strong&gt; rely on default browser styles for conveying a heading hierarchy. Explicitly define your document hierarchy using &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; for second-level headings, &lt;code&gt;&amp;lt;h3&amp;gt;&lt;/code&gt; for third-level, etc.&lt;/li&gt;
&lt;li&gt;Always define your own &lt;code&gt;font-size&lt;/code&gt; and &lt;code&gt;margin&lt;/code&gt; for &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=43649853"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="chrome"/><category term="css"/><category term="firefox"/><category term="html"/><category term="mozilla"/><category term="safari"/><category term="web-standards"/></entry><entry><title>First look at the modern attr()</title><link href="https://simonwillison.net/2025/Apr/3/first-look-at-the-modern-attr/#atom-tag" rel="alternate"/><published>2025-04-03T15:53:52+00:00</published><updated>2025-04-03T15:53:52+00:00</updated><id>https://simonwillison.net/2025/Apr/3/first-look-at-the-modern-attr/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://ishadeed.com/article/modern-attr/"&gt;First look at the modern attr()&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Chrome 133 (released February 25th 2025) was the first browser to &lt;a href="https://developer.chrome.com/release-notes/133?hl=en#css_advanced_attr_function"&gt;ship support&lt;/a&gt; for the advanced CSS &lt;code&gt;attr()&lt;/code&gt; function (&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/attr"&gt;MDN&lt;/a&gt;), which lets &lt;code&gt;attr()&lt;/code&gt; be used to compose values using types other than strings.&lt;/p&gt;
&lt;p&gt;Ahmad Shadeed explores potential applications of this in detail, trying it out for CSS grid columns, progress bars, background images, animation delays and more.&lt;/p&gt;
&lt;p&gt;I like this example that uses the &lt;code&gt;rows="5"&lt;/code&gt; attribute on a &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; to calculate its &lt;code&gt;max-height&lt;/code&gt; - here wrapped in a feature detection block:&lt;/p&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;@supports&lt;/span&gt; (&lt;span class="pl-c1"&gt;x&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-en"&gt;attr&lt;/span&gt;(x &lt;span class="pl-en"&gt;type&lt;/span&gt;(&lt;span class="pl-c1"&gt;*&lt;/span&gt;))) {
  &lt;span class="pl-ent"&gt;textarea&lt;/span&gt; {
    &lt;span class="pl-c1"&gt;min-height&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-en"&gt;calc&lt;/span&gt;(
      &lt;span class="pl-en"&gt;attr&lt;/span&gt;(rows &lt;span class="pl-en"&gt;type&lt;/span&gt;(&amp;lt;number&lt;span class="pl-c1"&gt;&amp;gt;&lt;/span&gt;)) &lt;span class="pl-c1"&gt;*&lt;/span&gt; &lt;span class="pl-c1"&gt;50&lt;span class="pl-smi"&gt;px&lt;/span&gt;&lt;/span&gt;
    );
  }
}&lt;/pre&gt;

&lt;p&gt;That &lt;code&gt;type(&amp;lt;number&amp;gt;)&lt;/code&gt; is the new syntax.&lt;/p&gt;
&lt;p&gt;Many of Ahmad's examples can be achieved today across all browsers using a slightly more verbose CSS custom property syntax.&lt;/p&gt;
&lt;p&gt;Here are the tracking issues for CSS values support in &lt;code&gt;attr()&lt;/code&gt; for &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=435426"&gt;Firefox&lt;/a&gt; (opened 17 years ago) and &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=26609"&gt;WebKit&lt;/a&gt; (16 years ago).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css-custom-properties"&gt;css-custom-properties&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ahmad-shadeed"&gt;ahmad-shadeed&lt;/a&gt;&lt;/p&gt;



</summary><category term="chrome"/><category term="css"/><category term="web-standards"/><category term="css-custom-properties"/><category term="ahmad-shadeed"/></entry><entry><title>Backstory on the default styles for the HTML dialog modal</title><link href="https://simonwillison.net/2025/Mar/16/backstory/#atom-tag" rel="alternate"/><published>2025-03-16T16:36:36+00:00</published><updated>2025-03-16T16:36:36+00:00</updated><id>https://simonwillison.net/2025/Mar/16/backstory/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://news.ycombinator.com/item?id=43378225#43380129"&gt;Backstory on the default styles for the HTML dialog modal&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
My TIL about &lt;a href="https://til.simonwillison.net/css/dialog-full-height"&gt;Styling an HTML dialog modal to take the full height of the viewport&lt;/a&gt; (here's the &lt;a href="https://tools.simonwillison.net/side-panel-dialog"&gt;interactive demo&lt;/a&gt;) showed up &lt;a href="https://news.ycombinator.com/item?id=43378225"&gt;on Hacker News&lt;/a&gt; this morning, and attracted this fascinating comment from Chromium engineer Ian Kilpatrick.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There's quite a bit of history here, but the abbreviated version is that the dialog element was originally added as a replacement for window.alert(), and there were a libraries polyfilling dialog and being surprisingly widely used.&lt;/p&gt;
&lt;p&gt;The mechanism which dialog was originally positioned was relatively complex, and slightly hacky (magic values for the insets).&lt;/p&gt;
&lt;p&gt;Changing the behaviour basically meant that we had to add "overflow:auto", and some form of "max-height"/"max-width" to ensure that the content within the dialog was actually reachable.&lt;/p&gt;
&lt;p&gt;The better solution to this was to add "max-height:stretch", "max-width:stretch". You can see &lt;a href="https://github.com/whatwg/html/pull/5936#discussion_r513642207"&gt;the discussion for this here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The problem is that no browser had (and still has) shipped the "stretch" keyword. (Blink &lt;a href="https://groups.google.com/a/chromium.org/g/blink-dev/c/SiZ2nDt3B9E/m/kP_rKOaDAgAJ?pli=1"&gt;likely will "soon"&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;However this was pushed back against as this had to go in a specification - and nobody implemented it ("-webit-fill-available" would have been an acceptable substitute in Blink but other browsers didn't have this working the same yet).&lt;/p&gt;
&lt;p&gt;Hence the calc() variant. (Primarily because of "box-sizing:content-box" being the default, and pre-existing border/padding styles on dialog that we didn't want to touch). [...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I particularly enjoyed this insight into the challenges of evolving the standards that underlie the web, even for something this small:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One thing to keep in mind is that any changes that changes web behaviour is under some time pressure. If you leave something too long, sites will start relying on the previous behaviour - so it would have been arguably worse not to have done anything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Also from the comments I learned that Firefox DevTools &lt;em&gt;can&lt;/em&gt; show you user-agent styles, but that option is turned off by default - &lt;a href="https://til.simonwillison.net/css/dialog-full-height#user-content-update-firefox-can-show-browser-styles"&gt;notes on that here&lt;/a&gt;. Once I turned this option on I saw references to an &lt;code&gt;html.css&lt;/code&gt; stylesheet, so I dug around and &lt;a href="https://searchfox.org/mozilla-central/source/layout/style/res/html.css"&gt;found that in the Firefox source code&lt;/a&gt;. Here's &lt;a href="https://github.com/mozilla/gecko-dev/commits/HEAD/layout/style/res/html.css"&gt;the commit history&lt;/a&gt; for that file on the official GitHub mirror, which provides a detailed history of how Firefox default HTML styles have evolved with the standards over time.&lt;/p&gt;
&lt;p&gt;And &lt;a href="https://news.ycombinator.com/item?id=43378225#43380255"&gt;via uallo&lt;/a&gt; here are the same default HTML styles for other browsers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chromium: &lt;a href="https://github.com/chromium/chromium/blob/main/third_party/blink/renderer/core/html/resources/html.css"&gt;third_party/blink/renderer/core/html/resources/html.css&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WebKit: &lt;a href="https://github.com/WebKit/WebKit/blob/main/Source/WebCore/css/html.css"&gt;Source/WebCore/css/html.css&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="chrome"/><category term="css"/><category term="firefox"/><category term="html"/><category term="web-standards"/></entry><entry><title>TIL: Styling an HTML dialog modal to take the full height of the viewport</title><link href="https://simonwillison.net/2025/Mar/14/styling-an-html-dialog/#atom-tag" rel="alternate"/><published>2025-03-14T23:13:55+00:00</published><updated>2025-03-14T23:13:55+00:00</updated><id>https://simonwillison.net/2025/Mar/14/styling-an-html-dialog/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://til.simonwillison.net/css/dialog-full-height"&gt;TIL: Styling an HTML dialog modal to take the full height of the viewport&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I spent some time today trying to figure out how to have a modal &lt;code&gt;&amp;lt;dialog&amp;gt;&lt;/code&gt; element present as a full height side panel that animates in from the side. The full height bit was hard, until Natalie helped me figure out that browsers apply a default &lt;code&gt;max-height: calc(100% - 6px - 2em);&lt;/code&gt; rule which needs to be over-ridden.&lt;/p&gt;
&lt;p&gt;Also included: some &lt;a href="https://til.simonwillison.net/css/dialog-full-height#user-content-spelunking-through-the-html-specification"&gt;spelunking through the HTML spec&lt;/a&gt; to figure out where that &lt;code&gt;calc()&lt;/code&gt; expression was first introduced. The answer was &lt;a href="https://github.com/whatwg/html/commit/979af1532"&gt;November 2020&lt;/a&gt;.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/natalie-downe"&gt;natalie-downe&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/til"&gt;til&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="html"/><category term="natalie-downe"/><category term="web-standards"/><category term="til"/></entry><entry><title>Quoting Kornel Lesiński</title><link href="https://simonwillison.net/2024/Jul/9/kornel-lesinski/#atom-tag" rel="alternate"/><published>2024-07-09T10:43:32+00:00</published><updated>2024-07-09T10:43:32+00:00</updated><id>https://simonwillison.net/2024/Jul/9/kornel-lesinski/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://mastodon.social/@kornel/112752977103985802"&gt;&lt;p&gt;Chrome's biggest innovation was the short release cycle with a silent unceremonious autoupdate.&lt;/p&gt;
&lt;p&gt;When updates were big, rare, and manual, buggy and outdated browsers were lingering for soo long, that we were giving bugs names. We documented the bugs in magazines and books, as if they were a timeless foundation of WebDev.&lt;/p&gt;
&lt;p&gt;Nowadays browser vendors can fix bugs in 6 weeks (even Safari can…). New-ish stuff is still buggy, but rarely for long enough for the bugs to make it to schools' curriculums.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://mastodon.social/@kornel/112752977103985802"&gt;Kornel Lesiński&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="chrome"/><category term="web-standards"/></entry><entry><title>Quoting Andreas Kling</title><link href="https://simonwillison.net/2024/Jun/23/andreas-kling/#atom-tag" rel="alternate"/><published>2024-06-23T23:59:15+00:00</published><updated>2024-06-23T23:59:15+00:00</updated><id>https://simonwillison.net/2024/Jun/23/andreas-kling/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://twitter.com/awesomekling/status/1803412879816659243"&gt;&lt;p&gt;For some reason, many people still believe that browsers need to include non-standard hacks in HTML parsing to display the web correctly.&lt;/p&gt;
&lt;p&gt;In reality, the HTML parsing spec is exhaustively detailed. If you implement it as described, you will have a web-compatible parser.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://twitter.com/awesomekling/status/1803412879816659243"&gt;Andreas Kling&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="html"/><category term="web-standards"/><category term="andreas-kling"/><category term="ladybird"/></entry><entry><title>“Wherever you get your podcasts” is a radical statement</title><link href="https://simonwillison.net/2024/Feb/9/wherever-you-get-your-podcasts-is-a-radical-statement/#atom-tag" rel="alternate"/><published>2024-02-09T05:18:21+00:00</published><updated>2024-02-09T05:18:21+00:00</updated><id>https://simonwillison.net/2024/Feb/9/wherever-you-get-your-podcasts-is-a-radical-statement/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.anildash.com/2024/02/06/wherever-you-get-podcasts/"&gt;“Wherever you get your podcasts” is a radical statement&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Anil Dash points out that podcasts are one of the few cases where the dream really did work out:&lt;/p&gt;

&lt;p&gt;“[...] what it represents is the triumph of exactly the kind of technology that’s supposed to be impossible: open, empowering tech that’s not owned by any one company, that can’t be controlled by any one company, and that allows people to have ownership over their work and their relationship with their audience.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/anil-dash"&gt;anil-dash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/podcasts"&gt;podcasts&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rss"&gt;rss&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="anil-dash"/><category term="podcasts"/><category term="rss"/><category term="web-standards"/></entry><entry><title>How we're building a browser when it's supposed to be impossible</title><link href="https://simonwillison.net/2023/Apr/11/how-were-building-a-browser/#atom-tag" rel="alternate"/><published>2023-04-11T10:18:45+00:00</published><updated>2023-04-11T10:18:45+00:00</updated><id>https://simonwillison.net/2023/Apr/11/how-were-building-a-browser/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://awesomekling.substack.com/p/how-were-building-a-browser-when"&gt;How we&amp;#x27;re building a browser when it&amp;#x27;s supposed to be impossible&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Andreas Kling: “The ECMAScript, HTML, and CSS specifications today are (for the most part) stellar technical documents whose algorithms can be implemented with considerably less effort and guesswork than in the past.” The Ladybird project is such an inspiration, and really demonstrates the enormous value of the work put in by web standards spec authors over the last twenty years.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=35521704"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="web-standards"/><category term="andreas-kling"/><category term="ladybird"/></entry><entry><title>Simple Push Demo</title><link href="https://simonwillison.net/2023/Mar/27/simple-push-demo/#atom-tag" rel="alternate"/><published>2023-03-27T20:48:27+00:00</published><updated>2023-03-27T20:48:27+00:00</updated><id>https://simonwillison.net/2023/Mar/27/simple-push-demo/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://simple-push-demo.vercel.app/"&gt;Simple Push Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Safari 16.4 is out (upgrade to iOS 16.4 to get it) and the biggest feature for me is mobile support for Web Push notifications. This little demo tool was the first I found that successfully sent a notification to my phone: frustratingly you have to add it to your home page first in order to enable the feature. The site also provides a curl command for sending push notifications through the Apple push server once a token has been registered, which is the crucial step to figuring out how to build applications that can send out notifications to users who have registered to receive them.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://fedi.simonwillison.net/@simon/110097204324966688"&gt;@simon&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webpush"&gt;webpush&lt;/a&gt;&lt;/p&gt;



</summary><category term="safari"/><category term="web-standards"/><category term="webpush"/></entry><entry><title>Igalia: the Open Source Powerhouse You’ve Never Heard of</title><link href="https://simonwillison.net/2023/Jan/16/igalia/#atom-tag" rel="alternate"/><published>2023-01-16T20:28:46+00:00</published><updated>2023-01-16T20:28:46+00:00</updated><id>https://simonwillison.net/2023/Jan/16/igalia/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://thenewstack.io/igalia-the-open-source-powerhouse-youve-never-heard-of/"&gt;Igalia: the Open Source Powerhouse You’ve Never Heard of&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
An in-depth article about Igalia from July 2022. I had no idea how much stuff they had worked on: arrow functions, generators, async/await, MathML, CSS Grid and a whole bunch more.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://toot.cafe/@bkardell/109699992794216963"&gt;Brian Kardell&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/igalia"&gt;igalia&lt;/a&gt;&lt;/p&gt;



</summary><category term="open-source"/><category term="web-standards"/><category term="igalia"/></entry><entry><title>Supporting logical properties</title><link href="https://simonwillison.net/2022/Oct/1/supporting-logical-properties/#atom-tag" rel="alternate"/><published>2022-10-01T01:03:21+00:00</published><updated>2022-10-01T01:03:21+00:00</updated><id>https://simonwillison.net/2022/Oct/1/supporting-logical-properties/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://adactio.com/journal/19487"&gt;Supporting logical properties&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A frustrating reminder from Jeremy Keith that Safari is not an evergreen browser: older iOS devices (1st gen iPad Air for example) get stuck on the last iOS version that supports them, which also sticks them with an old version of Safari, which means they will never get support for newer CSS properties such as inline-start and block-end. Jeremy shows how to use the @supports rule to hide this new syntax from those older browsers.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jeremy-keith"&gt;jeremy-keith&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ios"&gt;ios&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="jeremy-keith"/><category term="safari"/><category term="web-standards"/><category term="ios"/></entry><entry><title>Shoelace</title><link href="https://simonwillison.net/2022/Aug/20/shoelace/#atom-tag" rel="alternate"/><published>2022-08-20T20:57:16+00:00</published><updated>2022-08-20T20:57:16+00:00</updated><id>https://simonwillison.net/2022/Aug/20/shoelace/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://shoelace.style/"&gt;Shoelace&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Saw this for the first time today: it’s a relatively new library of framework-agnostic Web Components, built on lit-html and covering a huge array of common functionality: buttons and sliders and dialogs and drawer interfaces and dropdown menus and so on. The design is very clean, the documentation is superb—and it looks like you can cherry pick just the components you are using for a pretty lean addition to your page weight. So refreshing to see libraries like this that really take advantage of modern web standards.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/AdamRackis/status/1561075648143278080"&gt;Adam Rackis&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-components"&gt;web-components&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lit-html"&gt;lit-html&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="javascript"/><category term="web-standards"/><category term="web-components"/><category term="lit-html"/></entry><entry><title>Quoting Anil Dash</title><link href="https://simonwillison.net/2018/May/7/anil-dash/#atom-tag" rel="alternate"/><published>2018-05-07T13:28:51+00:00</published><updated>2018-05-07T13:28:51+00:00</updated><id>https://simonwillison.net/2018/May/7/anil-dash/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://twitter.com/anildash/status/993450843272830976"&gt;&lt;p&gt;Somebody should write up how the early-2000s push for open standards and the Web Standards Project’s advocacy are a major factor in why Apple was able to create its enormously valuable comeback. Put another way, one of the killer moments of the first iPhone demo was Jobs saying it had the “real” web, not the “baby” web, by demonstrating the NYT homepage. That would’ve been IE-only &amp;amp; Windows-only if not for effective advocacy from the web standards community.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://twitter.com/anildash/status/993450843272830976"&gt;Anil Dash&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/anil-dash"&gt;anil-dash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/apple"&gt;apple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards-project"&gt;web-standards-project&lt;/a&gt;&lt;/p&gt;



</summary><category term="anil-dash"/><category term="apple"/><category term="web-standards"/><category term="web-standards-project"/></entry><entry><title>Are there any web design conferences in Southeast Asia?</title><link href="https://simonwillison.net/2010/Oct/11/are-there-any-web/#atom-tag" rel="alternate"/><published>2010-10-11T10:41:00+00:00</published><updated>2010-10-11T10:41:00+00:00</updated><id>https://simonwillison.net/2010/Oct/11/are-there-any-web/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Are-there-any-web-design-conferences-in-Southeast-Asia/answer/Simon-Willison"&gt;Are there any web design conferences in Southeast Asia?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Our site, Lanyrd, lists a few:&lt;/p&gt;

&lt;span&gt;&lt;a href="http://lanyrd.com/places/23424846/"&gt;http://lanyrd.com/places/23424846/&lt;/a&gt;&lt;/span&gt; - page for Indonesia&lt;br /&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/places/23424960/"&gt;http://lanyrd.com/places/23424960/&lt;/a&gt;&lt;/span&gt; - page for Thailand

&lt;p&gt;Also try using our search function.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="web-standards"/><category term="quora"/></entry><entry><title>Dive Into HTML 5</title><link href="https://simonwillison.net/2009/Aug/20/diveintohtml5/#atom-tag" rel="alternate"/><published>2009-08-20T14:40:23+00:00</published><updated>2009-08-20T14:40:23+00:00</updated><id>https://simonwillison.net/2009/Aug/20/diveintohtml5/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://diveintohtml5.org/"&gt;Dive Into HTML 5&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Mark Pilgrim’s free online book on HTML 5—currently just one chapter on canvas (which neatly illustrates the coordinate system using a diagram rendered using canvas itself) but certain to become an invaluable resource for anyone looking to take advantage of HTML 5.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/books"&gt;books&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/canvas"&gt;canvas&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-pilgrim"&gt;mark-pilgrim&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="books"/><category term="canvas"/><category term="html5"/><category term="mark-pilgrim"/><category term="web-standards"/></entry><entry><title>Quoting David Baron</title><link href="https://simonwillison.net/2009/Jul/8/david/#atom-tag" rel="alternate"/><published>2009-07-08T20:30:27+00:00</published><updated>2009-07-08T20:30:27+00:00</updated><id>https://simonwillison.net/2009/Jul/8/david/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://dbaron.org/log/20090707-ex-html"&gt;&lt;p&gt;Microsoft was slowing development of new versions of Internet Explorer in the hope that Web-based applications would not be able to compete with Windows applications, and Windows applications would keep people locked in to the Windows operating system. Thus XHTML2 was developed with no expectation that the leading Web browser would ever implement it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://dbaron.org/log/20090707-ex-html"&gt;David Baron&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/david-baron"&gt;david-baron&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/internet-explorer"&gt;internet-explorer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/microsoft"&gt;microsoft&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml2"&gt;xhtml2&lt;/a&gt;&lt;/p&gt;



</summary><category term="david-baron"/><category term="internet-explorer"/><category term="microsoft"/><category term="web-standards"/><category term="xhtml"/><category term="xhtml2"/></entry><entry><title>Quoting James Bennett</title><link href="https://simonwillison.net/2009/Jul/8/james/#atom-tag" rel="alternate"/><published>2009-07-08T19:36:59+00:00</published><updated>2009-07-08T19:36:59+00:00</updated><id>https://simonwillison.net/2009/Jul/8/james/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.b-list.org/weblog/2009/jul/08/xhtml/"&gt;&lt;p&gt;Insofar as it encouraged workaday web professionals to recognize that there are such things as best practices independent of particular browser implementations, I think XHTML can be termed successful. Insofar as it got people thinking about the possibility of a better Web ahead of us, I think XHTML can be termed successful. Insofar as it changed the popular conception of professional web design and thrust standards into the forefront, I think XHTML can be termed successful.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.b-list.org/weblog/2009/jul/08/xhtml/"&gt;James Bennett&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/james-bennett"&gt;james-bennett&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;&lt;/p&gt;



</summary><category term="james-bennett"/><category term="web-standards"/><category term="xhtml"/></entry><entry><title>In defense of web developers</title><link href="https://simonwillison.net/2009/Jul/7/zeldman/#atom-tag" rel="alternate"/><published>2009-07-07T15:52:55+00:00</published><updated>2009-07-07T15:52:55+00:00</updated><id>https://simonwillison.net/2009/Jul/7/zeldman/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.zeldman.com/2009/07/07/in-defense-of-web-developers/"&gt;In defense of web developers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Zeldman: “The social benefit of rethinking markup sealed the deal. XHTML’s introduction in 2000, and its emphasis on rules of construction, gave web standards evangelists like me a platform on which to hook a program of semantic markup replacing the bloated and unsustainable tag soup of the day.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jeffrey-zeldman"&gt;jeffrey-zeldman&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/markup"&gt;markup&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;&lt;/p&gt;



</summary><category term="html5"/><category term="jeffrey-zeldman"/><category term="markup"/><category term="web-standards"/><category term="xhtml"/></entry><entry><title>Quoting Assaf Arkin</title><link href="https://simonwillison.net/2009/Jul/6/labnotes/#atom-tag" rel="alternate"/><published>2009-07-06T21:02:02+00:00</published><updated>2009-07-06T21:02:02+00:00</updated><id>https://simonwillison.net/2009/Jul/6/labnotes/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://blog.labnotes.org/2009/07/06/rounded-corners-236-%E2%80%94-loose-tweets-sink-fleets/"&gt;&lt;p&gt;Turns out, a lot of people are saddened by the loss of a spec they don’t understand, and if they did, would not bother using.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://blog.labnotes.org/2009/07/06/rounded-corners-236-%E2%80%94-loose-tweets-sink-fleets/"&gt;Assaf Arkin&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/assaf-arkin"&gt;assaf-arkin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml2"&gt;xhtml2&lt;/a&gt;&lt;/p&gt;



</summary><category term="assaf-arkin"/><category term="html5"/><category term="web-standards"/><category term="xhtml"/><category term="xhtml2"/></entry><entry><title>An Unnofficial Q&amp;A about the Discontinuation of the XHTML2 WG</title><link href="https://simonwillison.net/2009/Jul/6/unnofficial/#atom-tag" rel="alternate"/><published>2009-07-06T12:27:18+00:00</published><updated>2009-07-06T12:27:18+00:00</updated><id>https://simonwillison.net/2009/Jul/6/unnofficial/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/"&gt;An Unnofficial Q&amp;amp;A about the Discontinuation of the XHTML2 WG&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
By Henri Sivonen.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/faq"&gt;faq&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/henri-sivonen"&gt;henri-sivonen&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html2"&gt;html2&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/w3c"&gt;w3c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;&lt;/p&gt;



</summary><category term="faq"/><category term="henri-sivonen"/><category term="html"/><category term="html2"/><category term="html5"/><category term="w3c"/><category term="web-standards"/><category term="xhtml"/></entry><entry><title>Quoting Alan Storm</title><link href="https://simonwillison.net/2009/Jul/4/alan/#atom-tag" rel="alternate"/><published>2009-07-04T12:51:15+00:00</published><updated>2009-07-04T12:51:15+00:00</updated><id>https://simonwillison.net/2009/Jul/4/alan/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://simonwillison.net/2009/Jul/4/xhtml/#c47024"&gt;&lt;p&gt;Yes, it'd be nice if everyone kept up to date on the progress of the various W3C working groups. They don't. There are a lot of people who asked what professional markup looked like and were told (right or wrong) that XHTML was the future. So they went ahead and learned XHTML, built their websites and chose watching a DVD or spending time with their kids over watching Mark Pilgrim and Sam Ruby do battle over Postel's Law. Now all of a sudden they're told XHTML is dead. Some wailing and gnashing of teeth is to be expected. What's needed is less "boy aren't I smarter than them" snideness, and more Hey, here's what's up.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://simonwillison.net/2009/Jul/4/xhtml/#c47024"&gt;Alan Storm&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/alan-storm"&gt;alan-storm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-pilgrim"&gt;mark-pilgrim&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postelslaw"&gt;postelslaw&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sam-ruby"&gt;sam-ruby&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/w3c"&gt;w3c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml2"&gt;xhtml2&lt;/a&gt;&lt;/p&gt;



</summary><category term="alan-storm"/><category term="html5"/><category term="mark-pilgrim"/><category term="postelslaw"/><category term="sam-ruby"/><category term="w3c"/><category term="web-standards"/><category term="xhtml"/><category term="xhtml2"/></entry><entry><title>Jeffrey Zeldman: XHTML WTF</title><link href="https://simonwillison.net/2009/Jul/4/xhtml/#atom-tag" rel="alternate"/><published>2009-07-04T01:22:47+00:00</published><updated>2009-07-04T01:22:47+00:00</updated><id>https://simonwillison.net/2009/Jul/4/xhtml/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.zeldman.com/2009/07/02/xhtml-wtf/"&gt;Jeffrey Zeldman: XHTML WTF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Reading the comments, it’s scary how many people are totally ill-informed about HTML5 and XHTML5.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/education"&gt;education&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jeffrey-zeldman"&gt;jeffrey-zeldman&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml5"&gt;xhtml5&lt;/a&gt;&lt;/p&gt;



</summary><category term="education"/><category term="html5"/><category term="jeffrey-zeldman"/><category term="web-standards"/><category term="xhtml"/><category term="xhtml5"/></entry><entry><title>FAQs about the future of XHTML</title><link href="https://simonwillison.net/2009/Jul/3/xhtml/#atom-tag" rel="alternate"/><published>2009-07-03T01:37:51+00:00</published><updated>2009-07-03T01:37:51+00:00</updated><id>https://simonwillison.net/2009/Jul/3/xhtml/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.w3.org/2009/06/xhtml-faq"&gt;FAQs about the future of XHTML&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The XHTML 2 Working Group charter will not be renewed after 2009—as far as the W3C are concerned, XHTML5 is the future of XHTML.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/w3c"&gt;w3c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml"&gt;xhtml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml2"&gt;xhtml2&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhtml5"&gt;xhtml5&lt;/a&gt;&lt;/p&gt;



</summary><category term="w3c"/><category term="web-standards"/><category term="xhtml"/><category term="xhtml2"/><category term="xhtml5"/></entry><entry><title>Opera Web Standards Curriculum</title><link href="https://simonwillison.net/2008/Jul/8/opera/#atom-tag" rel="alternate"/><published>2008-07-08T14:22:17+00:00</published><updated>2008-07-08T14:22:17+00:00</updated><id>https://simonwillison.net/2008/Jul/8/opera/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.opera.com/wsc/"&gt;Opera Web Standards Curriculum&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Opera commissioned an impressive sequence of articles from a bunch of very talented people to help address the monstrous learning curve for modern client-side development.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/opera"&gt;opera&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/teaching"&gt;teaching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webstandardscurriculum"&gt;webstandardscurriculum&lt;/a&gt;&lt;/p&gt;



</summary><category term="opera"/><category term="teaching"/><category term="web-standards"/><category term="webstandardscurriculum"/></entry></feed>