<?xml version="1.0" encoding="UTF-8"?>
<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>Broken Links &#187; browsers</title>
	<atom:link href="http://www.broken-links.com/category/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.broken-links.com</link>
	<description>Thoughts on web development and technologies by Peter Gasston</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:47:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://www.broken-links.com/?pushpress=hub'/>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Where do we draw the line for browser support?</title>
		<link>http://www.broken-links.com/2012/02/03/where-do-we-draw-the-line-for-browser-support/</link>
		<comments>http://www.broken-links.com/2012/02/03/where-do-we-draw-the-line-for-browser-support/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 19:46:01 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=1497</guid>
		<description><![CDATA[Prompted by the announcement on 37Signals that their next platform update would not support IE7 or IE8 (or many other older browsers), a vigorous debate took place on Twitter around the subject of for how long we should support browsers which don’t have the most modern features. For all its many positives, Twitter is no [...]]]></description>
			<content:encoded><![CDATA[<p>Prompted by the <a href="http://37signals.com/svn/posts/3097-developing-for-old-browsers-is-almost-a-thing-of-the-past">announcement on 37Signals</a> that their next platform update would not support IE7 or IE8 (or many other older browsers), a vigorous debate took place on Twitter around the subject of for how long we should support browsers which don’t have the most modern features. For all its many positives, Twitter is no place for nuanced argument, so this article is for me to try to frame my opinion a little better.</p>
<p><span id="more-1497"></span></p>
<p>My idealistic view is that the web should work for everyone, regardless of their method of access. Idealism always takes second place to pragmatism, however; I know that we have to work within our limits, we can’t provide a first-class experience for everyone all of the time. So where do we draw the line for browser support?</p>
<p>The answer is the same as always: <em>it depends</em>.</p>
<p>When making the decision, you should use a Cost-Benefit Analysis (<abbr>CBA</abbr>). The <strong>cost</strong> includes your resources: how much time you have, how much money, the staff you have available. All of these are finite. The <strong>benefit</strong> (or lack of) is mostly to your users: not only the ones who may be excluded, but also the others who could get a reduced service if you have to divert resources to legacy support.</p>
<p>In 37Signals case they know their users well, they’ve done this before and obviously feel the benefits are greatly in favour of their current user base. If someone can’t get access to their website it’s not the end of the world, there are alternatives available.</p>
<p>But your market may be different. You may not even know your market. Telling people that they must update their browser is making a lot of presumptions about them:</p>
<ul>
<li>That they are aware of what a browser is. <a href="http://www.youtube.com/watch?v=o4MwTvtyrUQ">A lot of people aren’t</a>. It’s why Google are spending millions on a global campaign (not entirely selflessly, of course).</li>
<li>That they have the ability to update it — and I don’t just mean technical ability, but cognitive and physical ability too.</li>
<li>That the technology they use supports updating or using alternative browsers. Many (most?) of the devices I know do, but I’m not aware of the technology markets across Africa and Asia, for example.</li>
</ul>
<p>Most importantly, you must assess the benefit of the content — or the lack of access thereof — to the user. You could be building a site about healthcare which contains content that could save lives — literally vital information. <a href="http://christianheilmann.com/2012/01/19/some-real-world-browser-stats/">Christian Heilmann recently posted browser stats from a healthcare site</a> which showed that ~50% of visitors were using a browser which wouldn’t meet 37Signals’ criteria.</p>
<p>With all that in mind, after we’ve done the <abbr>CBA</abbr> I would say that the very least consideration of ours should be how easy it is to do something. I said in the discussion that “we play the cards we’re dealt” — that wasn’t intended to be a statement of passivity, but rather one of acceptance that we don’t control our users. If they use IE6, we build for them. We can educate and encourage, but only up to a point. Beyond that point we start to become arrogant.</p>
<p>So that’s my opinion, I look forward to hearing yours.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=1497&amp;md5=c0a1d60075fd28565e9869a6dd69fa00" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2012/02/03/where-do-we-draw-the-line-for-browser-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=1497&amp;md5=c0a1d60075fd28565e9869a6dd69fa00" type="text/html" />
	</item>
		<item>
		<title>Opera’s CSS Pagination Build</title>
		<link>http://www.broken-links.com/2011/10/27/operas-css-pagination-build/</link>
		<comments>http://www.broken-links.com/2011/10/27/operas-css-pagination-build/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 13:07:18 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[experimental]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[pagination]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=1385</guid>
		<description><![CDATA[Opera recently released a Labs build of their browser with support for CSS pagination; that is, removing the scrollbar from documents and adding page controls instead (this is ideal for non-desktop devices, especially TV, where scrolling can be onerous). The syntax (as described in the Generated Content for Paged Media module) is very simple; you [...]]]></description>
			<content:encoded><![CDATA[<p>Opera recently released <a href="http://labs.opera.com/news/2011/10/19/">a Labs build of their browser with support for CSS pagination</a>; that is, removing the scrollbar from documents and adding page controls instead (this is ideal for non-desktop devices, especially TV, where scrolling can be onerous). The syntax (as described in the <a href="http://dev.w3.org/csswg/css3-gcpm/">Generated Content for Paged Media module</a>) is very simple; you first use a media query with the <code>paged</code> media type (prefixed in Opera) like so:</p>
<pre>@media -o-paged {}</pre>
<p>Then use new values for the <code>overflow</code> property on the scrollable element to control whether the pagination moves horizontally or vertically, and whether or not on-screen controls are shown, like so:</p>
<pre>@media -o-paged {
  html {
    height: 100%;
    overflow: -o-paged-x-controls;
  }
}</pre>
<p>This paginates the whole document horizontally, and adds controls. To see this working, you’ll need to <a href="http://labs.opera.com/news/2011/10/19/">download a copy of the Labs build</a> (available for Mac, Windows, Linux and Android), then you can visit this <a href="http://www.broken-links.com/tests/diveinto/">example page from Dive Into HTML5</a> I quickly set up. Navigate by dragging/swiping, cursor keys, or the native controls.</p>
<p>I really like this; it’s still early days, but the syntax seems clear and logical and works well in the demos I’ve seen, and I think it’s going to be really useful as the web migrates away from the desktop and onto other connected devices. More <a href="http://people.opera.com/howcome/2011/reader/index.html">information and examples are in the ‘Paging the Web’ article</a> on Håkon Wium Lie’s website, and I’ll definitely be delving further into this.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=1385&amp;md5=acc3715e9826691d4f1c345d6dbff672" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2011/10/27/operas-css-pagination-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=1385&amp;md5=acc3715e9826691d4f1c345d6dbff672" type="text/html" />
	</item>
		<item>
		<title>State of the Browser</title>
		<link>http://www.broken-links.com/2011/03/22/state-of-the-browser/</link>
		<comments>http://www.broken-links.com/2011/03/22/state-of-the-browser/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 11:46:24 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[london]]></category>
		<category><![CDATA[london web standards]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=1144</guid>
		<description><![CDATA[This weekend I attended the London Web Standards group’s State of the Browser, a one-day event with representatives of many of the major browser makers giving us status reports on their products. Chrome, Firefox, Opera and Blackberry were all there; a member of the IE team was due to show but had to pull out [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I attended the <a href="http://www.londonwebstandards.org/">London Web Standards</a> group’s <a href="http://browser.londonwebstandards.org/">State of the Browser</a>, a one-day event with representatives of many of the major browser makers giving us status reports on their products. Chrome, Firefox, Opera and Blackberry were all there; a member of the <abbr>IE</abbr> team was due to show but had to pull out for personal reasons (he viewed the live stream and <a href="http://ubelly.com/2011/03/twitter-qa-from-state-of-the-browser/">answered some questions from home</a>). The notable absence was Safari, whose community engagement is really not good enough.</p>
<p>There were long talks and shorter breakout sessions, as well as plenty of time to socialise; the <abbr>LWS</abbr> must really be congratulated on organising such a good event. There was plenty of news and talking points throughout the day — far too much, really, for me to write here, so I’ll just write up notes of what I found most interesting to me.</p>
<p><span id="more-1144"></span></p>
<p>After a fun introduction from Terence Eden, the first full session was by Michael Mahemoff of Google. He showed that Chrome’s V8 JavaScript engine is now  some 700% faster than when it was first released, and then mentioned a few <a href="http://www.chromium.org/developers/web-platform-status">features that have just landed (or are about to land)</a> in the browser: the <a href="http://www.html5rocks.com/tutorials/file/filesystem/"><abbr>HTML5</abbr> File System</a>, <a href="http://dev.w3.org/html5/workers/#shared-workers-introduction">Shared Workers</a>, and <a href="http://dev.w3.org/html5/eventsource/">Server-Sent Events</a>. The big round of applause, though, was reserved for speech input in forms, which is supported in Chrome (dev channel) right now; you just need to add the attribute <code>x-webkit-speech</code>:</p>
<pre>&lt;input type="text" x-webkit-speech&gt;</pre>
<input type="text" placeholder="View in Chrome" x-webkit-speech style="margin: 0 0 20px 10px">
<p>He also showed off the Chrome Web Store and a neat little utility, <a href="http://www.appmator.com/">Appmator</a>, which you can use to easily publish your own app. <a href="http://prez.mahemoff.com/state-chrome/#0">His slides are available online</a>, but they only work in WebKit browsers. :(</p>
<p>Next was Paul Rouget of Firefox, showing off a load of neat demos of the capabilities of open web media, many of which can be found at Mozilla’s <a href="https://demos.mozilla.org/">Web O’ Wonder</a>. He also demonstrated them all running perfectly on <a href="http://www.mozilla.com/mobile/">Firefox Mobile</a>, which pretty much has feature parity with its desktop sibling — indeed it may even have more, as it includes the <a href="http://dev.w3.org/2006/webapi/WebNotifications/publish/">Notifications <abbr>API</abbr></a> which isn’t in Firefox desktop yet. There’s a cool little <a href="https://mozillademos.org/demos/dashboard/demo.html">dashboard demo which showcases many of Firefox 4’s new features</a>, and an impressive mobile version which doesn’t seem to be online yet.</p>
<p>He then talked about Firefox’s new release schedule, which is moving to quarterly releases meaning that Firefox 7 could be out by the end of this year. Features planned for inclusion in Firefox 5 include Web Sockets, Server-Sent Events, the Fullscreen <abbr>API</abbr>, Notification <abbr>API</abbr>, and an Account Manager. No mention of what Firefox 6 may have, but Firefox 7 may include an update to the Gecko engine.</p>
<p>Chris Mills of Opera was next. In his talk, <a href="http://www.vimeo.com/21308036">A Matter of Good Form</a>, he focused a lot on Opera’s implementation of HTML5 Forms, which it must be said are streets ahead of anyone else. I’m putting together a couple of posts on forms, so I’ll save discussion of this until that time.</p>
<p>After lunch there were some breakout sessions to choose from. I attended first Google’s Malte Ubl’s session, Performance Optimization for <abbr>HTML5</abbr> Apps. In fact this was a really good overview of performance best practices, not limited to only HTML5 apps. One of his points was to let the browser take as much of the work from the <abbr>JS</abbr> engine as it can; use <abbr>CSS</abbr> transitions instead of <abbr>JS</abbr> animations where possible, as this uses the browser’s hardware acceleration and therefore less processor resource. Another was to interact with the <abbr>DOM</abbr> as few times as possible, and to also to group those interactions; if your <abbr>JS</abbr> is currently structured Read-Write-Read-Write, changing it to Read-Read-Write-Write means less <abbr>DOM</abbr> interaction, and increased speed.</p>
<p>An interesting aside: he said that this generation’s equivalent of <code>zoom:1</code> (which triggers <a href="http://www.satzansatz.de/cssd/onhavinglayout.html"><code>hasLayout</code></a> in older versions of <abbr>IE</abbr>) could be:</p>
<pre><em>E</em> { transform: translate3D(0,0,0); }</pre>
<p>This triggers hardware acceleration on elements which don’t already use it (in Safari, at least). I think this may have been partly a joke, however!</p>
<p>The second session was The Dos and Don’ts on the Mobile Web by Blackberry’s Mathew Staikos, which covered some similar ground but had more good tips, notably not to use <code>position:fixed</code> with WebKit Mobile — it can cause a complete repaint after every scroll action! Also, use <em>touch</em> events where possible as they’re faster than <em>click</em>, which has to wait anywhere up to 500ms to see if the action will be <em>doubleclick</em> before firing. He also used a tool I hadn’t seen before which provides <a href="http://www.webkit.org/misc/WebKitDetect.html">information about the version of WebKit you are running</a>. His colleague Sanyu Kiruluta then gave us a very rapid overview of the <a href="http://appworld.blackberry.com/webstore/">Blackberry App World</a> (link is Windows-only) and their tool <a href="http://www.blackberry.com/developers/webworks">WebWorks</a>, which is similar to Phonegap.</p>
<p>To round the afternoon off we had <a href="http://www.vimeo.com/21310419">a <abbr>Q&amp;A</abbr> with all of the main speakers</a>, then off to the pub for a free beer courtesy of BlackBerry. Thanks, BlackBerry, and thanks again to everyone else who organised, spoke and attended. </p>
<p><abbr>NB</abbr>: I’ll update this post with more slides and videos from the event as they become available.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=1144&amp;md5=3da3e093271da05dc5f6939962e7530f" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2011/03/22/state-of-the-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=1144&amp;md5=3da3e093271da05dc5f6939962e7530f" type="text/html" />
	</item>
		<item>
		<title>On Internet Explorer and Microsoft</title>
		<link>http://www.broken-links.com/2010/10/26/on-internet-explorer-and-microsoft/</link>
		<comments>http://www.broken-links.com/2010/10/26/on-internet-explorer-and-microsoft/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 09:45:38 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[windows phone 7]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=1030</guid>
		<description><![CDATA[I’m not a blind Microsoft-basher, neither am I an MS fanboy (in fact, I think the whole idea of aligning yourself with any single technology or brand is pretty narrow-minded). I think MS do some things well, and some things poorly. I am going to have a bit of a pop at them at the [...]]]></description>
			<content:encoded><![CDATA[<p>I’m not a blind Microsoft-basher, neither am I an <abbr title="Microsoft">MS</abbr> fanboy (in fact, I think the whole idea of aligning yourself with any single technology or brand is pretty narrow-minded). I think <abbr>MS</abbr> do some things well, and some things poorly. I <em>am</em> going to have a bit of a pop at them at the end of this article, but I’m going to start by defending them.</p>
<p><span id="more-1030"></span></p>
<p>Recently I read this piece of hyperbolic link-bait: <a href="http://css3wizardry.com/2010/08/14/ie9-is-the-ie6-of-css3/"><abbr>IE9</abbr> is the <abbr>IE6</abbr> of <abbr>CSS3</abbr></a>. In the article the author bemoans the fact that a layout he’s created using some new <abbr>CSS3</abbr> features doesn’t display well in <abbr>IE9</abbr>. His complaints betray his basic misunderstanding of software development, the standards process, and Microsoft themselves.</p>
<p>Browser makers are under no obligation to include <abbr>CSS3</abbr> features just because other browsers do. Just because WebKit proposed a bunch of new modules and the <abbr>W3C</abbr> have agreed to open a consultation on them, doesn’t mean they are an ‘official’ part of <abbr>CSS3</abbr>. In Microsoft’s case they also have a policy of not implementing features that don’t have a full suite of tests; one of the features in the article that the author mentions is the Flexible Box Layout module, which is far from complete — Firefox and WebKit have it implemented, but it behaves differently in each and the spec is still undergoing revision.</p>
<p>Also, it must be remembered that <abbr>IE9</abbr> is still in Beta; new features are being added, removed and changed constantly. If you encounter an inconsistency in the way those features are implemented, stop griping and <a href="http://connect.microsoft.com/IE">file a bug report</a>. Personally, I’d favour a browser with fewer, more stable features than one which ships with non-conforming or badly implemented features (this is how we’d <em>really</em> end up with a new <abbr>IE6</abbr>). I actually think that <abbr>IE9</abbr> provides a pretty good snapshot of the most stable components of <abbr>CSS3</abbr>, and I’m looking forward to seeing it adopted by users.</p>
<p>So, onto the gripe. With all of the hard work that the <abbr>IE</abbr> dev team have put into bringing their browser up to scratch in the last few years, it must be immensely dispiriting for them that nobody else within Microsoft seems to want to use it. First we had the news that Outlook was to use Word as it’s default <abbr>HTML</abbr> renderer*, and now we have the launch of Windows Phone 7 with a modded version of <abbr>IE7</abbr> as its browser.</p>
<p><abbr>IE7</abbr> was, essentially, a bug-fix version of <abbr>IE6</abbr>. It is not a modern browser, and not in the same league as the Mobile versions of WebKit, Firefox and Opera. It has none of the features which make those browsers so useful. If you’re building a website for touch-enabled smartphones you now have to take into account that if you want to support Windows Phone 7, you have to work around the lack of geolocation, local storage, offline storage, <abbr>SVG</abbr>, <code>canvas</code> and much more.</p>
<p>The only saving grace in this is that apparently the browser has been implemented in a way which means it can be updated separately from the rest of the software, so improvements can be made without a full firmware update. I hope that this is the case, and that updates are made frequently, and soon.</p>
<p><i>* It seems that <a href="http://www.9to5mac.com/32191/outlook-2011-uses-webkit-to-render-html">future versions of Outlook (on Mac, at least) may use WebKit</a></i>.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=1030&amp;md5=e000a1d7a606743b1d8143380aaf8adb" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/10/26/on-internet-explorer-and-microsoft/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=1030&amp;md5=e000a1d7a606743b1d8143380aaf8adb" type="text/html" />
	</item>
		<item>
		<title>An IE9 review with a massive error</title>
		<link>http://www.broken-links.com/2010/09/16/an-ie9-review-with-a-massive-error/</link>
		<comments>http://www.broken-links.com/2010/09/16/an-ie9-review-with-a-massive-error/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 18:56:00 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=987</guid>
		<description><![CDATA[I downloaded the IE9 Beta last night, and while I haven’t had the chance to give it a proper once-over yet, I’m pretty impressed with its capabilities so far. The real star is the hardware acceleration, which opens pages so fast it seems like magic. The new HTML5 and CSS3 support is very welcome. You [...]]]></description>
			<content:encoded><![CDATA[<p>I downloaded the <abbr>IE9</abbr> Beta last night, and while I haven’t had the chance to give it a proper once-over yet, I’m pretty impressed with its capabilities so far. The real star is the hardware acceleration, which opens pages so fast it seems like magic. The new <abbr>HTML5</abbr> and <abbr>CSS3</abbr> support is very welcome.</p>
<p>You can read <a href="http://www.zdnet.com/blog/bott/internet-explorer-9-beta-review-microsoft-reinvents-the-browser/2430">an in-depth review of it at ZDNet</a>, except it seems to be written by someone who doesn’t really understand <abbr>CSS</abbr> very well.</p>
<p><span id="more-987"></span></p>
<p>In <a href="http://www.zdnet.com/blog/bott/internet-explorer-9-beta-review-microsoft-reinvents-the-browser/2430?pg=5">page five of the review</a> he provides comparisons of the code required to get a rounded corners effect on an element, claiming that this is what’s needed for it to work in Chrome:</p>
<pre>border-bottom-left-radius: 152px 152px;
border-bottom-right-radius: 228px 228px;
border-bottom-style: solid;
border-bottom-width: 42px;
border-left-style: solid;
border-left-width: 42px;
border-right-style: solid;
border-right-width: 42px;
border-top-left-radius: 152px 152px;
border-top-right-radius: 304px 304px;
border-top-style: solid;
border-top-width: 42px;
padding-bottom: 12px;
padding-left: 12px;
padding-right: 12px;
padding-top: 12px;</pre>
<p>This is — not to put too fine a point on it — crap. Chrome will accept the shorthand properties in exactly the same way as <abbr>IE9</abbr>, Safari, Opera and Firefox. </p>
<p>Speaking of that latter browser, he also states that the <code>–moz–</code> prefix is required for <code>border-radius</code>:</p>
<pre>-moz-border-radius: 152px 304px 228px 152px;</pre>
<p>But as we’re dealing with Beta releases, then he should also make clear that in the latest Firefox Beta the prefix is no longer needed.</p>
<p>When the Betas become release versions, we’ll be able to use the same code cross-browser:</p>
<pre>border: 42px solid orange;
border-radius: 152px 304px 228px 152px;
padding: 12px;</pre>
<p>There’s nothing wrong with not knowing <abbr>CSS</abbr>, but if you don’t know it then maybe you shouldn’t make a point of using it in an example.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=987&amp;md5=008c107df74dcdb3a3c414f5155f9118" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/09/16/an-ie9-review-with-a-massive-error/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=987&amp;md5=008c107df74dcdb3a3c414f5155f9118" type="text/html" />
	</item>
		<item>
		<title>HTML5 block-level link bug in IE7+</title>
		<link>http://www.broken-links.com/2010/09/14/html5-block-level-link-bug-in-ie7/</link>
		<comments>http://www.broken-links.com/2010/09/14/html5-block-level-link-bug-in-ie7/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 10:26:47 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=925</guid>
		<description><![CDATA[HTML5 allows the use of block elements inside the a tag, which was not permitted in HTML4. This means that you can wrap a link around whole sections of markup, making all of the child elements of the a become the link. You use it like so: &#60;a href="http://example.com"&#62; &#60;div&#62; &#60;h3&#62;I'm an example&#60;/h3&#62; &#60;/div&#62; &#60;/a&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5 allows the use of block elements inside the <code>a</code> tag, which was not permitted in HTML4. This means that you can wrap a link around whole sections of markup, making all of the child elements of the <code>a</code> become the link. You use it like so:</p>
<pre>&lt;a href="http://example.com"&gt;
  &lt;div&gt;
    &lt;h3&gt;I'm an example&lt;/h3&gt;
  &lt;/div&gt;
&lt;/a&gt;</pre>
<p>You can begin to use this straight away, as every browser supports it — although you must be wary of one rather glaring bug in Internet Explorer.</p>
<p><span id="more-925"></span></p>
<p>The bug occurs if you try to nest other <code>a</code> elements inside the block-level one, as shown in this example markup:</p>
<pre>&lt;a href="http://example.com"&gt;
  &lt;div&gt;
    &lt;h3&gt;<mark>&lt;a href="http://example.com"&gt;</mark>I'm an example<mark>&lt;/a&gt;</mark>&lt;/h3&gt;
  &lt;/div&gt;
&lt;/a&gt;</pre>
<p>With this markup <abbr>IE7</abbr> fails to render some elements, and <abbr>IE8</abbr> and <abbr>IE9</abbr> create an empty, ‘phantom’ element. I’ll show you what I mean, starting with the way this markup <em>should</em> render; on the left is the <abbr>HTML</abbr> markup as it displays in your browser, and on the right I’ve placed a screenshot from Firefox to act as a comparison.</p>
<div class="post-925">
<a href="http://example.com"></p>
<div>
<h3><a href="http://example.com">I’m an example</a></h3>
</p></div>
<p></a>
</div>
<p><img src="/wp-content/uploads/2010/09/block-link-bug-correct.png" alt="" title="block-link-bug-correct" width="250" height="128" class="aligncenter size-full wp-image-977"></p>
<p>And now see how they appear in <abbr>IE7</abbr> (left) and <abbr>IE8</abbr> &amp; <abbr>IE9</abbr> (right):</p>
<p><img src="/wp-content/uploads/2010/09/block-link-bug-ie7.png" alt="" title="block-link-bug-ie7" width="250" height="90" style="float: left;"><img src="/wp-content/uploads/2010/09/ie-block-link-bug1.png" alt="" title="IE Block Link Bug" width="267" height="188"></p>
<p>As you can see, in <abbr>IE7</abbr> the <code>h3</code> element loses its background color and margin, and in <abbr>IE8</abbr> &amp; <abbr>IE9</abbr> there’s an empty box above my markup; this is the ‘phantom’ element, which is inheriting the border from the <code>div</code> element, and the <code>margin-bottom</code> from the <code>h3</code>. Were I to add <code>margin-top</code> (or further properties that affect the box model) to my markup, they would also show up here.</p>
<p>Strangely, this bug doesn’t seem to occur in IE6.</p>
<p>The fix is quite simple: don’t nest <code>a</code> elements. I only did it as I needed an element to create a particular style effect, but it can be done just as easily with a <code>span</code>. I tried a number of other approaches but this seemed to be the only one that worked.</p>
<p><strong>Update:</strong> As has been pointed out in the comments, nesting <code>a</code> elements is in fact prohibited by the HTML5 specification. I’ll leave this post here for the other people like me who weren’t aware of that.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=925&amp;md5=549c5089958a8ec80ead74d4acfd64b9" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/09/14/html5-block-level-link-bug-in-ie7/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=925&amp;md5=549c5089958a8ec80ead74d4acfd64b9" type="text/html" />
	</item>
		<item>
		<title>Where do I find out what’s new in WebKit?</title>
		<link>http://www.broken-links.com/2010/08/22/where-do-i-find-out-whats-new-in-webkit/</link>
		<comments>http://www.broken-links.com/2010/08/22/where-do-i-find-out-whats-new-in-webkit/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 22:07:05 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=917</guid>
		<description><![CDATA[I’m a big fan of using nightly and pre-release versions of browsers; not for day-to-day use, but to find out what new features are on their way. Obviously this is made a lot easier when detailed changelogs are provided. Firefox do a great job of this with their website The Burning Edge, which gives fortnightly [...]]]></description>
			<content:encoded><![CDATA[<p>I’m a big fan of using nightly and pre-release versions of browsers; not for day-to-day use, but to find out what new features are on their way. Obviously this is made a lot easier when detailed changelogs are provided.</p>
<p>Firefox do a great job of this with their website <a href="http://www.squarefree.com/burningedge/">The Burning Edge</a>, which gives fortnightly (more or less) lists of changes in the latest trunk builds, and <a href="http://my.opera.com/desktopteam/blog/">Opera’s Desktop Team Blog</a> does likewise on a semi-regular basis. The Internet Explorer team have done a good job of documenting all the changes in IE9 with the <a href="http://ie.microsoft.com/testdrive/info/ReleaseNotes/Default.html">Platform Preview Release Notes</a>.</p>
<p>The notable exception seems to be WebKit. I’ve looked around but I can’t find any site which gives an overview of changes in the nightly builds. I could subscribe to the RSS feed of their <a href="http://trac.webkit.org/">Trac</a>, but it would be a nightmare trying to find the interesting features amongst all the technical changes. The <a href="http://webkit.org/blog/">Surfin’ Safari</a> and <a href="http://planet.webkit.org/">Planet WebKit</a> aren’t any help.</p>
<p>So does anyone know how to find this information for WebKit? I can’t believe it doesn’t exist.</p>
<p><strong>Update:</strong> As if by magic, look what I found just a day later: <a href="http://peter.sh/2010/08/last-week-in-webkit-and-chromium/">Last week in.. WebKit and Chromium!</a></p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=917&amp;md5=f78ec1670ae58fe06a7668f8a6814b12" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/08/22/where-do-i-find-out-whats-new-in-webkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=917&amp;md5=f78ec1670ae58fe06a7668f8a6814b12" type="text/html" />
	</item>
		<item>
		<title>New to Firefox: –moz-calc and :-moz-any</title>
		<link>http://www.broken-links.com/2010/05/17/new-to-firefox-moz-calc-and-moz-any/</link>
		<comments>http://www.broken-links.com/2010/05/17/new-to-firefox-moz-calc-and-moz-any/#comments</comments>
		<pubDate>Mon, 17 May 2010 13:00:37 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[calculations]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[experimental]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[selectors]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=795</guid>
		<description><![CDATA[The latest nightly releases of what will become Firefox 4 have implemented a couple of experimental new CSS features. The –moz-calc function allows calculations on length values, and the :-moz-any selector permits grouping of simple selectors. If you have a nightly build of Firefox you can see a little demo I’ve put together of them [...]]]></description>
			<content:encoded><![CDATA[<p>The latest nightly releases of what will become Firefox 4 have <a href="http://www.squarefree.com/burningedge/2010/05/12/2010-05-12-trunk-builds/">implemented a couple of experimental new CSS features</a>. The <code>–moz-calc</code> function allows calculations on length values, and the <code>:-moz-any</code> selector permits grouping of simple selectors.</p>
<p>If you have a <a href="http://www.mozilla.org/developer/#builds">nightly build of Firefox</a> you can see a little <a href="http://www.broken-links.com/tests/calc-any/">demo</a> I’ve put together of them in action.</p>
<p><span id="more-795"></span></p>
<p>The first new property is <code>–moz-calc</code>, which is the experimental implementation of CSS3’s <a href="http://www.w3.org/TR/css3-values/#calc"><code>calc</code> function</a>. This allows you to perform simple mathematical functions on length values.</p>
<p>Take a look at the <a href="http://www.broken-links.com/tests/calc-any/">demo</a>, where you’ll see two <code>h2</code> elements; both have the same styles applied to them, but the second also has some extra <code>calc</code> values for some of its properties:</p>
<pre>font-size: -moz-calc(120% * 3);
letter-spacing: -moz-calc(0 + 2px);
text-shadow: rgba(0,0,0,0.33) -moz-calc(4px / 2) -moz-calc(4px / 2);
word-spacing: -moz-calc(0.75em - 0.25em);</pre>
<p>The <code>font-size property</code> has a value of <em>120% * 3</em>, or <em>360%;</em> the <code>letter-spacing</code> property has a value of <em>0 + 2px</em>, or <em>2px</em>; the <code>text-shadow</code> property has x and y offset values of <em>4px / 2</em>, or <em>2px</em>; and the <code>word-spacing</code> property has a value of <em>0.75em — 0.25em</em>, or <em>0.5em</em>.</p>
<p>The values themselves are abitrary and not important; what matters is that we’re doing calculations in CSS!</p>
<p>At the moment the only properties which support <code>–moz-calc</code> values are:<code>–moz-column-rule-width</code>, <code>–moz-column-width</code>, <code>letter-spacing</code>, <code>word-spacing</code>, <code>marker-offset</code>, <code>outline-offset</code>, <code>border-spacing</code>, <code>text-shadow</code> and <code>–moz-box-shadow</code>; but work is underway to add this to all properties which accept length values.</p>
<p><strong>Update:</strong> You can read more about <code>calc()</code> at <a href="http://hacks.mozilla.org/2010/06/css3-calc/">hacks.mozilla.org</a>.</p>
<p>Also implemented is a new selector, <code>:-moz-any</code>. With this you can group other simple selectors, removing the need for repetitive code. Consider, for example, a typical web page which has many types of list, and nested lists:</p>
<pre>
&lt;ul&gt;
  &lt;li&gt;We are all list items now
    &lt;ul&gt;
      &lt;li&gt;We are all list items now&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
  &lt;li&gt;We are all list items now
    &lt;ul&gt;
      &lt;li&gt;We are all list items now&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;
&lt;menu&gt;
  &lt;li&gt;We are all list items now
    &lt;ul&gt;
      &lt;li&gt;We are all list items now&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/menu&gt;
</pre>
<p>If we wanted to select all of the <code>li</code> children of nested <code>ul</code> elements we would currently have to do this:</p>
<pre>ul ul li, ol ul li, menu ul li { property: value; }</pre>
<p>But with <code>–moz-any</code> we can group the selectors like so:</p>
<pre>:-moz-any(ul,ol,menu) ul li { property: value; }</pre>
<p>In my <a href="http://www.broken-links.com/tests/calc-any/">demo</a> page I’ve provided a couple of examples; the first selects all list types which are direct child elements of the body:</p>
<pre>body > :-moz-any(ol, ul, menu) {
	float: left;
	width: 33%;
}</pre>
<p>And the next selects list items of the lists which are children of those elements:</p>
<pre>:-moz-any(ol, ul, menu) ul li {
	font-weight: bold;
	margin-left: 0;
}</pre>
<p>The <code>:any</code> selector isn’t in any of the CSS3 modules, but it’s pretty useful and definitely a candidate for inclusion. You can read more about it on <a href="http://dbaron.org/log/20100424-any">the blog of David Baron</a>.</p>
<p><strong>Update: </strong>Changed the examples for clarity.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=795&amp;md5=c9103d520397af289289d125d5ec47a6" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/05/17/new-to-firefox-moz-calc-and-moz-any/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=795&amp;md5=c9103d520397af289289d125d5ec47a6" type="text/html" />
	</item>
		<item>
		<title>Help wanted: Webkit multi-columns</title>
		<link>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/</link>
		<comments>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 20:09:51 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[multiple columns]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=701</guid>
		<description><![CDATA[I’m writing about the CSS3 Multi-column layout module and I notice that WebKit supports a series of proprietary properties: –webkit-column-break-after, –webkit-column-break-before, and –webkit-column-break-inside. However, despite the documentation saying that they’re implemented in Safari 3+, I can’t seem to get any of them to work. Has anyone reading this ever seen an example of these in [...]]]></description>
			<content:encoded><![CDATA[<p>I’m writing about the CSS3 Multi-column layout module and I notice that WebKit supports a series of proprietary properties: <code>–webkit-column-break-after</code>, <code>–webkit-column-break-before</code>, and <code>–webkit-column-break-inside</code>. However, despite the documentation saying that they’re implemented in Safari 3+, I can’t seem to get any of them to work.</p>
<p>Has anyone reading this ever seen an example of these in action? I’ve searched for demos but have found nothing. If you know anything about this, please leave me a comment; your help would be gratefully appreciated.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=701&amp;md5=e0dfd9d7eeb1b2f2e480fc913d0b266e" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=701&amp;md5=e0dfd9d7eeb1b2f2e480fc913d0b266e" type="text/html" />
	</item>
		<item>
		<title>Opera 10.5 has support for CSS transforms</title>
		<link>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/</link>
		<comments>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 20:28:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=680</guid>
		<description><![CDATA[The Opera team have released a very early preview of their next browser, which features an updated version of their Presto rendering engine. Opera 10.5 will support CSS transforms and transitions, so I’ve updated the demos on my old post, Anime with CSS and WebKit, to reflect that.]]></description>
			<content:encoded><![CDATA[<p>The Opera team have released <a href="http://labs.opera.com/news/2009/12/22/">a very early preview of their next browser</a>, which features an updated version of their Presto rendering engine. Opera 10.5 will support CSS transforms and transitions, so I’ve updated the demos on my old post, <a href="http://www.broken-links.com/2008/07/11/anime-with-css-and-webkit/">Anime with CSS and WebKit</a>, to reflect that.</p>
 <p><a href="http://www.broken-links.com/?flattrss_redirect&amp;id=680&amp;md5=324132013c02ae230edfb3dd94e6ed7b" title="Flattr" target="_blank"><img src="http://www.broken-links.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.broken-links.com/?flattrss_redirect&amp;id=680&amp;md5=324132013c02ae230edfb3dd94e6ed7b" type="text/html" />
	</item>
	</channel>
</rss>

