<?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>James Hopkins</title>
	<atom:link href="http://jhop.me/feed" rel="self" type="application/rss+xml" />
	<link>http://jhop.me</link>
	<description></description>
	<lastBuildDate>Wed, 28 Apr 2010 22:49:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>An apology</title>
		<link>http://jhop.me/browsers/ie8/an-apology</link>
		<comments>http://jhop.me/browsers/ie8/an-apology#comments</comments>
		<pubDate>Wed, 28 Apr 2010 22:49:20 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[IE8]]></category>
		<category><![CDATA[IE9]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=1035</guid>
		<description><![CDATA[I&#8217;d like to apologise to those who have taken the time to contact me (either by email or Twitter) regarding IE8 bugs
A few months ago, I embarked on a work project that has ultimately left me with no time to keep on top of incoming mails, let alone bug reports from contributors. If you haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to apologise to those who have taken the time to contact me (either by email or Twitter) regarding IE8 bugs</p>
<p>A few months ago, I embarked on a work project that has ultimately left me with no time to keep on top of incoming mails, let alone bug reports from contributors. If you haven&#8217;t received a reply from me regarding your correspondence, then I could easily see how you may think I can&#8217;t be bothered to reply &#8211; rest assured, this isn&#8217;t the case at all.</p>
<p>I&#8217;ve had a truly great response from authors ever since I requested they write in about potential bugs they&#8217;ve found. For me to not respond to the more recent emails in an adequate time frame is completely unprofessional and I apologise profusely for this. I still have a complete archive of all emails sent to me, and I endeavour to respond appropriately to all of these in the coming month.</p>
<p>Some people may argue that since IE9 is now starting to be exposed publicly, that maintaining an IE8 bug list such as mine is worthless. I disagree strongly with this view. I like to think the list in it&#8217;s current form is providing developers with a much needed knowledge base that Microsoft Connect is lacking (filtering, clear UI, etc). My aim is to carry on maintaining the list into the near future, and for it to become a permanent resource to developers.</p>
<h2>IE9, and associated bug reporting</h2>
<p>Apart from reading the majority of IEBlog articles on IE9&#8217;s rendering capabilities, I&#8217;ve been completely out of the loop as to what IE9 has in store for developers when it&#8217;s finally released. You may be wondering, since I&#8217;m an IE MVP, why I wasn&#8217;t informed on a product group level; I don&#8217;t have an answer for you. There&#8217;s been absolutely <strong>no</strong> <acronym title="Product group invites">PGI</acronym>s for Internet Explorer and the IE MVP newsgroup has been extremely quiet- so quiet in fact I&#8217;ve now removed <a href="http://www.panic.com/unison/">Unison</a> from opening at startup, and I now don&#8217;t pay attention to the newsgroups at all.</p>
<p>I for one was astounded after finding out that IE9 won&#8217;t be released for WIndows XP &#8211; limiting a browser version to certain platform versions is absurd on so many different levels. I do all my browser testing on my Macbook Pro and I have two VM&#8217;s installed (one for IE6/7, and one for IE8). I&#8217;ve decided to bit the bullet and purchase Windows 7 tomorrow so that I can test drive IE9 for the first time, albeit on &#8216;Platform Preview&#8217;. </p>
<p>In terms of IE9 bug testing, like with IE8, my aim is to create an initial list and would open up participation to authors that are inclined to do so. I see a far greater need to establish a prominent list of IE9 issues than with IE8, since IE9 attempts to include complete implementations of several CSS3 modules, that they haven&#8217;t embarked on before with IE8. For this reason, I can evisage there being far more bugs with IE9 than with IE8.</p>
<p>Coming back to outstanding IE8 bug reports from authors writing in to me, I envisage to respond appropriately to those in the next month or so, and to continue to invite authors to contribute to this ever-growing list.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/browsers/ie8/an-apology/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE9 is coming</title>
		<link>http://jhop.me/browsers/ie9/ie9-is-coming</link>
		<comments>http://jhop.me/browsers/ie9/ie9-is-coming#comments</comments>
		<pubDate>Wed, 17 Feb 2010 20:54:17 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[IE9]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=1010</guid>
		<description><![CDATA[All active bug tickets on Microsoft Connect have now been marked as postponed, and Microsoft have appended the following message to all of them:

Thank you for submitting your feedback on Internet Explorer 8.  The information in this bug has been reviewed carefully by the team and will help inform future releases of Internet Explorer. [...]]]></description>
			<content:encoded><![CDATA[<p>All active bug tickets on Microsoft Connect have now been marked as postponed, and Microsoft have appended the following message to all of them:</p>
<blockquote><p>
Thank you for submitting your feedback on Internet Explorer 8.  The information in this bug has been reviewed carefully by the team and will help inform future releases of Internet Explorer.  We are now closing down the Internet Explorer 8 Feedback Program in preparation for soliciting feedback for our next version and as such, per the Microsoft Connect guidelines, all remaining bugs for IE8 will be resolved as “Postponed” for now.  When the feedback program for the next release is ready, we will look at transferring this bug, along with any applicable status update.
</p></blockquote>
<p>I would certainly take this as a sign that the release of IE9 is approaching. To close the bug reporting system relating to a current browser version for any significant period of time, without a new version (reporting system or browser) being released soon after, would be ludicrous. On the other hand, it does make sense to transfer all bug reports for IE8 over to the reporting system for IE9, and by Microsoft doing this, it confirms there&#8217;ll be no interim browser versions, anyway. Hopefully Microsoft will open up IE9&#8217;s reporting system soon, as I currently don&#8217;t have anywhere to create new tickets!</p>
<p>This status message from Microsoft also ties in nicely with the upcoming date of <a href="http://www.microsoft.com/events/mix/default.aspx">MIX 2010</a> where it&#8217;s been confirmed that <a href="http://live.visitmix.com/News/Internet-Explorer-9-at-MIX10">Dean Hachamovitch will be discussing the development of IE9</a>. Dare I suggest that Microsoft will give us a definitive release date for IE9, or even better, release it there and then? If it&#8217;s not the latter, I&#8217;d hazard a guess that we&#8217;ll see a beta release within the next five months.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/browsers/ie9/ie9-is-coming/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selecting text within an element in CSS</title>
		<link>http://jhop.me/uncategorized/selecting-text-within-an-element-in-css</link>
		<comments>http://jhop.me/uncategorized/selecting-text-within-an-element-in-css#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:25:08 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=975</guid>
		<description><![CDATA[An interesting discussion (which established itself as a branch from discussing behavioral characteristics of overflow) is currently taking place on www-style regarding a text selector control. Much of the detail is still being fleshed out, but I thought I&#8217;d give a quick overview.
Initially discussed as a possible way to remove suppress whitespace textnodes between inline-blocks, [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting discussion (which established itself as a branch from <a href="http://lists.w3.org/Archives/Public/www-style/2009Dec/thread.html#msg326">discussing behavioral characteristics of <code>overflow</code></a>) is <a href="http://lists.w3.org/Archives/Public/www-style/2010Jan/thread.html#msg16">currently taking place on www-style regarding a text selector control</a>. Much of the detail is still being fleshed out, but I thought I&#8217;d give a quick overview.</p>
<p>Initially discussed as a possible way to remove suppress whitespace textnodes between <code>inline-block</code>s, the control itself would take the form of a pseudo element incorporating function notation taking a matching pattern as an argument &#8211; something along the lines of <code>::text(<span style="font-style: italic; font-weight: normal; white-space: nowrap;">matching-pattern</span>)</code> &#8211; which would have the ability to match strings of text within an element.</p>
<p>In contrast to my own confused ramblings (which I subsequently retracted), the consensus now is that the pseudo element should be excluded from crossing element boundaries in order to match a constituent of the argument, which means the full range of CSS layout properties can be exposed to the pseudo element (dependant on <acronym title="Document Object Model">DOM</acronym>-based pattern matching). Otherwise, consider Tab&#8217;s example:</p>
<pre><code>p::text("foo b"){ display:block; }
&lt;p&gt;foo &lt;span&gt;bar&lt;/span&gt; baz&lt;/p&gt;
</code></pre>
<p>The above would split the pseudo element in two, since part of it would cross into the <code>&lt;span&gt;</code> in order to match the pattern given as the argument, resulting in:</p>
<pre><code>&lt;p&gt;&lt;text match="foo b"&gt;foo &lt;/text&gt;&lt;i&gt;&lt;text match="foo b"&gt;b&lt;/text&gt;ar&lt;/i&gt; baz&lt;/p&gt;
</code></pre>
<p>Not only would this be quite-rightly unintuitive from an author&#8217;s perspective, but it would also be harder to implement (compared to excluding element boundary crossing) from a vendor point of view. Having said that, the former issue could be solved by providing a limited range of CSS properties, similar to that of <code>::first-line</code>, although conversation is veering away from such a resolution.</p>
<p>The sub-topic of discussion at the moment is how to avoid one ::text() boundary from crossing another.</p>
<p>If you can take some time out of your day, it&#8217;s certainly <a href="http://lists.w3.org/Archives/Public/www-style/2010Jan/thread.html#msg16">an interesting read</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/uncategorized/selecting-text-within-an-element-in-css/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Establishing a new method of float containment</title>
		<link>http://jhop.me/css/css3/establishing-a-new-method-of-child-float-containment</link>
		<comments>http://jhop.me/css/css3/establishing-a-new-method-of-child-float-containment#comments</comments>
		<pubDate>Tue, 05 Jan 2010 18:51:18 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=916</guid>
		<description><![CDATA[So, in the many years in which floating (itself a workaround due to a lack of a more sanctioned layout tool) has become an integral part of CSS layouts, we have still not been provided with a control, whose primary purpose is float containment.
Authors have become reliant on either replicating a clearing markup element using [...]]]></description>
			<content:encoded><![CDATA[<p>So, in the many years in which <code>float</code>ing (itself a workaround due to a lack of a more sanctioned layout tool) has become an integral part of CSS layouts, we have <strong>still</strong> not been provided with a control, whose primary purpose is float containment.</p>
<p>Authors have become reliant on either <a href="http://www.positioniseverything.net/easyclearing.html">replicating a clearing markup element using generated content</a> (borne from <strong>author findings</strong>), or have found that <code><span>overflow:</span>hidden|scroll|auto;</code> applied to the parent, expands the parent&#8217;s margin-box to encapsulate the height of the child(ren). In fact, any property/value pair that can establish a new <a href="http://www.w3.org/TR/CSS21/visuren.html#block-formatting">block formatting context (BFC)</a> has the ability to do this. These pairs include:</p>
<ul>
<li><code><span>float:</span>left|right</code></li>
<li><code><span>position:</span>absolute|fixed</code></li>
<li><code><span>display:</span>inline-block|table-cell|table-caption</code></li>
<li><code><span>overflow:</span>hidden|scroll|auto</code></li>
</ul>
<p>Although there are a couple of areas in the spec that detail behavioral characteristics of <acronym title="Block Formatting Context">BFC</acronym>s, the crucial containment behavior can be derived from the <a href="http://www.w3.org/TR/2009/CR-CSS2-20090908/visuren.html#floats">Float specification</a></p>
<blockquote><p>[...] an element in the normal flow that establishes a new block formatting context (such as an element with &#8216;overflow&#8217; other than &#8216;visible&#8217;) must not overlap any floats in the same block formatting context as the element itself. If necessary, implementations should clear the said element by placing it below any preceding floats, but may place it adjacent to such floats if there is sufficient space.
</p>
<p><cite><a href="http://www.w3.org/TR/2009/CR-CSS2-20090908/visuren.html#floats">9.5 Floats</a></cite></p></blockquote>
<h2>A host of potential candidates</h2>
<p>Whilst the aforementioned properties are all able to clear child floats, there is a major difference with one property/value pair in particular in the way that it computes an element&#8217;s width.</p>
<p>Every property/value pair that has the ability to establish a <acronym title="Block Formatting Context">BFC</acronym> &#8211; apart from <code><span>overflow:</span>hidden|scroll|auto</code> &#8211; irrecoverably alters a block box&#8217;s computed width by applying the &#8217;shrink-to-fit&#8217; algorithm. In theory, we could try to emulate the expand-to-fit computed width of an in-flow block box with something like:</p>
<pre><code>display:inline-block; /* Establish a new BFC, but that applies shrink-to-fit to computed width */
   width:100%;
   box-sizing:border-box;
}
</code></pre>
<p>Whilst this would be a plausible solution in the presence of any horizontal padding values, horizontal margins would remain an issue, which leaves <code>overflow</code> as being the only real solution.</p>
<h2>Exploiting a property for it&#8217;s side-effect</h2>
<p>Since we&#8217;re hacking a property purely for the purposes of harnessing a side-effect of it&#8217;s BFC-establishing characteristic, we have to contend with it&#8217;s primary purpose; controlling the clipping of an element&#8217;s content when it overflows that element&#8217;s content box.</p>
<p>In the common case where an element (which has a floated sibling) overflows it&#8217;s parent and the parent is established as the containing block, one of the overflow mechanisms will be invoked; this is a problem if you require the overflowing content of the containing block to remain visible. The only solution in this case is to &#8216;revert&#8217; to one of the more traditional workarounds involving placing a clearing pseudo element after the parent&#8217;s document tree content. However, this author-invented solution acquires the pseudo element and means it can&#8217;t be used for more appropriate presentational purposes.</p>
<h2>What&#8217;s needed</h2>
<p>The crux of the matter is this &#8211; we&#8217;re being forced to use hacks in order to contain floats. Whilst <code>float</code> is an arguably adequate layout model for controlling content position amongst siblings (images, text, etc), it&#8217;s inadequate as a fundamental layout mechanism.</p>
<p>We&#8217;ve already identified that one particular characteristic of a <acronym title="Block Formatting Contexts">BFC</acronym> is that it contains floats in the manner that we require, each of the properties also have their own primary behavioral characteristics. So what I think&#8217;s needed is a new control which has the primary purpose of float containment in the same manner as a <acronym title="Block Formatting Context">BFC</acronym> currently does:</p>
<pre><code><span>'float-contain'</span>
<em>Value:</em>       auto | contain
<em>Initial:</em>     auto
<em>Applies to:</em>  non-replaced block-level elements
<em>Inherited:</em>   no
</code></pre>
<p>Granted, there are modules in the pipeline that will supersede <code>float</code> as a layout tool, but these are all still Working Drafts and likely to remain as drafts for a while longer (as far as I know). However, establishing a control that can be used as an interim solution whilst we still have to use floats, would be advantageous.</p>
<p class="notes">You can follow the discussion on www-style <a href="http://lists.w3.org/Archives/Public/www-style/2009Dec/thread.html#msg326">here</a> (NOTE: the thread spans multiple months)</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/css/css3/establishing-a-new-method-of-child-float-containment/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bring back float-displace</title>
		<link>http://jhop.me/css/css3/bring-back-float-displace</link>
		<comments>http://jhop.me/css/css3/bring-back-float-displace#comments</comments>
		<pubDate>Tue, 29 Dec 2009 17:39:54 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=897</guid>
		<description><![CDATA[Although I was already aware of this property&#8217;s existence, I was unaware that it had been removed from later iterations of css3-box &#8211; that was, until the related issue was brought up recently on www-style.
To me, float-displace is another good example of a property (another being box-sizing) introduced in CSS3 that aims to &#8216;patch&#8217; a [...]]]></description>
			<content:encoded><![CDATA[<p>Although I was already aware of <a href="http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-float-displace">this property</a>&#8217;s existence, I was unaware that it had been removed from later iterations of <a title="current version" href="http://www.w3.org/TR/css3-box/">css3-box</a> &#8211; that was, until the <a href="http://lists.w3.org/Archives/Public/www-style/2009Dec/0303.html">related issue was brought up recently</a> on <a href="http://lists.w3.org/Archives/Public/www-style/">www-style</a>.</p>
<p>To me, <code><a href="http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-float-displace">float-displace</a></code> is another good example of a property (another being <code><a href="/css/css3/the-css3-box-sizing-concept-a-solution-to-a-longstanding-problem">box-sizing</a></code>) introduced in CSS3 that aims to &#8216;patch&#8217; a logical failing present in previous CSS revisisons. The current behavior can be described as, the indented edge (caused by a <code>margin</code> value) of the in-flow element isn&#8217;t preserved between the margin-edge of the float and the content-edge of the in-flow element; this creates the following pit-falls:-</p>
<ol>
<li>It&#8217;s completely counter-intuitive for authors who aren&#8217;t already aware of this limitation</li>
<li>The only real workaround to this limitation is to apply a <code>margin</code> value (which equals the indentation of the in-flow element) to the floated element, thus emulating this indentation.
</li>
</ol>
<p>From an author&#8217;s perspective, it&#8217;s perfectly acceptable to assume that the indented egde of the in-flow element will be preserved upon encountering a float.</p>
<p>I have no idea what the reasoning behind removing this property from the current revision was, but am keen to find out.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/css/css3/bring-back-float-displace/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE8 haslayout = true</title>
		<link>http://jhop.me/browsers/ie8/haslayout-true</link>
		<comments>http://jhop.me/browsers/ie8/haslayout-true#comments</comments>
		<pubDate>Sat, 19 Dec 2009 19:25:25 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[IE8]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=827</guid>
		<description><![CDATA[After numerous promises that layout was never going to be included in IE8, it&#8217;s now become clear that the feature which, should have never been exposed [even in earlier IE versions] is alive in the latest version of Internet Explorer, albeit in a far less detrimental form than earlier IE* releases.
Believing what Microsoft had promised [...]]]></description>
			<content:encoded><![CDATA[<p>After numerous <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0151.html">promise</a>s that <code>layout</code> was never going to be included in IE8, it&#8217;s now become clear that the feature which, <q cite="http://lists.w3.org/Archives/Public/www-style/2007Dec/0151.html">should have never been exposed [even in earlier IE versions]</q> is alive in the latest version of Internet Explorer, albeit in a far less detrimental form than earlier IE* releases.</p>
<p>Believing what Microsoft had promised about <code>layout</code> not being in IE8, I didn&#8217;t feel it necessary to carry out a <a href="http://jhop.me/tests/bugs/ie8/haslayout/false.html">simple test which checks whether an element has <code>layout</code></a>, back when Beta 1 was first released. The test happened to have been included in a <a href="http://www.webmasterworld.com/css/4041519.htm">recent thread on WebmasterWorld</a>, in which a contributor suggested that <code>layout</code> was indeed part of IE8. Upon running this test, I was absolutely astonished by the result I was seeing; <a href="http://jhop.me/tests/bugs/ie8/haslayout/false.html">the test</a> proves that <code>layout</code> is <strong>definitely</strong> included in IE8 Standards Mode.  Upon checking the scope of the <a href="http://www.satzansatz.de/cssd/onhavinglayout.html#prop">known <code>layout</code> triggers</a> to test the completeness of IE8&#8217;s <code>layout</code> implementation, I observed that <strong>all</strong> (including IE7-specific) known trigger properties invoke <code>layout</code>.</p>
<p>Now that I&#8217;d identfied <code>layout</code> was indeed a feature of IE8, I needed to try and ascertain the scope of <code>layout</code> with regards to its effect on document styling.</p>
<p>After discovering this unwelcome addition, the first port of call was to go back over all the <a href="/ie8-bugs">bugs I&#8217;ve documented</a> to see if by triggering <code>layout</code>, a workaround could be established for each of the bugs, although it subsequently turned out this wasn&#8217;t to be the case. With this in mind, I&#8217;ve concluded that <code>layout</code> in IE8 is either:-</p>
<ol>
<li>an implementation whose effects on layout style have been purposefully suppressed. This could have resulted from IE7&#8217;s codebase being forked to provide a base for development of IE8</li>
<li>an accidental implementation whose suppressed effect on document styling can be attributed to inadvertant links with IE8&#8217;s seperate browser/document modes</li>
</ol>
<h2>More confirmation</h2>
<p>I then came across <a href="http://www.sitepoint.com/forums/showthread.php?p=4455791">a thread at SitePoint</a> relating to an issue where a rounded-corner JS library (Nifty Corners Cube) was wrongly invoking the shrink-to-fit computation for block-level elements in normal flow. One contributor <a href="http://www.sitepoint.com/forums/showpost.php?p=4455670&amp;postcount=7">pointed out a confirmed fix</a> which is reminiscent of triggering <code>layout</code>; <code>height:1%</code>. This particular issue, which is <a href="#niftycornerscube-IE8fix">discussed in more detail</a>, was essentially down to Javascript triggering <code>layout</code> in elements whose <code>layout</code> value was initially set to <code>false</code>. Adding a triggering property <em>before</em> the Javascript was fired, fixed the issue since these properties are recognised in IE8 as being <a href="http://www.satzansatz.de/cssd/onhavinglayout.html#prop">layout triggers</a>.</p>
<p>In conclusion, I haven&#8217;t yet some across any direct issues, such as CSS-only layout anomalies, that have resulted from <code>layout</code> in IE8, and I&#8217;d be very surprised if any such issues arose because of it. The <strong>real</strong> issue here however, is that some existing web pages are now broken as an indirect consequence of Microsoft backtracking on what it had <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0151.html">previously promised</a>. A perfectly plausible rationale behind the train of thought from the creator of Nifty Cube Corners, could be that since Microsoft had promised not to include <code>layout</code> in IE8, he saw no need to change the <code>display:inline-block layout</code> trigger, as this property doesn&#8217;t exhibit the change in <code>width</code> computation in IE6 &#038; 7 (as the change to the shrink-to-fit computation is ignored for elements that aren&#8217;t naturally inline-level). However, since IE8 includes a full implementation of <code>display:inline-block</code> <strong>and</strong> implements <code>layout</code>, the unwanted behavior (in this context) is exhibited. Another example of Microsoft going back on their word, and another example of the negative effect that their fabrications are having on authors&#8230;</p>
<h2 id="niftycornerscube-IE8fix">Aside: the IE8 fix for Nifty Corners Cube</h2>
<p>I&#8217;ve seen a fair few posts now where IE8 appears to adopt the shrink-to-fit computation for block-level elements in normal flow, which the Javascript from Nifty Corners Cube is applied to. A snippet from the distributed &#8216;niftycube.js&#8217; file:-</p>
<pre><code>function FixIE(el){
if(el.currentStyle!=null &amp;&amp; el.currentStyle.hasLayout!=null &amp;&amp; el.currentStyle.hasLayout==false)
    el.style.display="inline-block";
}
</code></pre>
<p><code>display:inline-block</code> (which uses the shrink-to-fit computation) is being used in the context of a <code>layout</code> trigger if <code>hasLayout</code> is detected as being <code>false</code>. Since we&#8217;ve already established that IE8 includes an implementation of <code>layout</code>, this trigger will be applied unless <code>layout</code> is set to <code>true</code> before this script is activated.</p>
<p>A more suitable trigger would be a property that doesn&#8217;t affect the initial <code>width</code> computation of an element. To fix this issue, instead use a more suitable trigger such as <code>overflow:hidden</code></p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/browsers/ie8/haslayout-true/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Downtime, shmowntime.</title>
		<link>http://jhop.me/site-specific/downtime-shmowntime</link>
		<comments>http://jhop.me/site-specific/downtime-shmowntime#comments</comments>
		<pubDate>Mon, 14 Dec 2009 23:03:43 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[Site-specific]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=820</guid>
		<description><![CDATA[Apologies if you were greeted with a 403 upon arriving at this here blog this afternoon. A non-sarcastic thanks to YCombinator News for the huge traffic spike, which subsequently resulted in my blog being knocked out for the last 7 or so hours. I recommend Super Cache&#8230;  
]]></description>
			<content:encoded><![CDATA[<p>Apologies if you were greeted with a 403 upon arriving at this here blog this afternoon. A non-sarcastic thanks to <a href="http://news.ycombinator.com/">YCombinator News</a> for the huge traffic spike, which subsequently resulted in my blog being knocked out for the last 7 or so hours. I recommend <a href="http://wordpress.org/extend/plugins/wp-super-cache/">Super Cache</a>&#8230; <img src='http://jhop.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/site-specific/downtime-shmowntime/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update</title>
		<link>http://jhop.me/browsers/ie8/update</link>
		<comments>http://jhop.me/browsers/ie8/update#comments</comments>
		<pubDate>Sun, 13 Dec 2009 16:43:11 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[IE8]]></category>

		<guid isPermaLink="false">http://jhop.me/?p=793</guid>
		<description><![CDATA[From June up until a few weeks ago, I took an immediate break for web-related work. The aim of this post is to provide a brief update of my goings on between June and present.
IE8 Bugs
I&#8217;m discovering (and people are writing in about) bugs in IE8 on a fairly regular basis at the moment, although [...]]]></description>
			<content:encoded><![CDATA[<p>From June up until a few weeks ago, I took an immediate break for web-related work. The aim of this post is to provide a brief update of my goings on between June and present.</p>
<h3>IE8 Bugs</h3>
<p>I&#8217;m discovering (and people are writing in about) bugs in IE8 on a fairly regular basis at the moment, although that regularity has obviously decreased significantly since the RTW version was released. Astonishingly, there&#8217;s still a significant (around 40-50%) percentage of bugs that are regressions from IE7, which I guess goes to demonstrate the insufficient regression testing program used in IE8.  More so, the nature of some of the reported bugs [<a href="/ie8-bugs#tablecell-computedwidthpadding">1</a>][<a href="/ie8-bugs#verticalpercentagepadding">2</a>][<a href="/ie8-bugs#listitem-margincollapse">3</a>][<a href="/ie8-bugs#replacedfloatedparent">4</a>][<a href="/ie8-bugs#overflowscroll-float-maxheight">5</a>] go to demonstrate how quirky and broken IE8 actually is; these aren&#8217;t straightforward spec violations &#8211; these are some very serious quirks akin to the severity of bugs found in a beta release.</p>
<p>Why Microsoft still haven&#8217;t removed statements <a href="http://msdn.microsoft.com/en-us/library/cc304082%28VS.85%29.aspx">claiming <strong>full</strong> CSS 2.1 support</a> from their PR material, is beyond me. It&#8217;s astonishing to think that Microsoft thought that they could get away with publishing these blantant lies; even if IE8 didn&#8217;t have any <a href="/ie8-bugs#css">CSS bugs/spec violations</a> (which is essentially near impossible in itself), we still don&#8217;t have an <a href="http://csswg.inkedblade.net/staging/redesign/Test/Overview.en.shtml">approved testsuite</a> which is one of the criterion required to demonstrate interoperability.</p>
<h3>CSS 2.1 testsuite</h3>
<p>I recently became a <a href="http://test.csswg.org/source/contributors/jameshopkins/">contributor</a> to the <a href="http://www.w3.org/Style/CSS/Test/CSS2.1/current/">CSS 2.1 testsuite</a>, and have been busy submitting many of the test cases used to demonstrate bugs in IE8. It&#8217;s of the upmost importance that every conceivable area of the specification is covered, so that we end up with a concise test suite &#8211; feel free to <a href="http://wiki.csswg.org/test/css2.1/contribute">contribute</a>, if you&#8217;d be willing.</p>
<h3>New domain</h3>
<p>Since idreamincode.co.uk was only ever meant to be temporary, I decided to purchase the domain name, jhop.me. I&#8217;ve always been a fan of acquiring an &#8216;exotic&#8217; country-code TLD, so I decided to go for a .me. I&#8217;ve been careful to preserve legacy links, but if you spot a link that is broken, please get in touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/browsers/ie8/update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compatibility View and Hard Asserts</title>
		<link>http://jhop.me/general-stuff/compatibility-view-and-hard-asserts</link>
		<comments>http://jhop.me/general-stuff/compatibility-view-and-hard-asserts#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:41:23 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[General stuff]]></category>

		<guid isPermaLink="false">http://idreamincode.co.uk/?p=746</guid>
		<description><![CDATA[Where did you appear from, Compatibility View?
Something very strange occured when I started viewing this site in the IE8 Candidate Release; for some reason, when I was moving from page to page, I sometimes managed to invoke Compatibility View. Thinking that this was just an issue with the CR, I didn&#8217;t bother investigating it. However [...]]]></description>
			<content:encoded><![CDATA[<h2>Where did you appear from, Compatibility View?</h2>
<p>Something very strange occured when I started viewing this site in the IE8 Candidate Release; for some reason, when I was moving from page to page, I sometimes managed to invoke Compatibility View. Thinking that this was just an issue with the CR, I didn&#8217;t bother investigating it. However this issue has crept up in at least <a href="http://idreamincode.co.uk/ie8-bugs#overflowscroll-float-maxheight">one of the issues I&#8217;ve looked into</a>, and less than two weeks ago, hidden in a post entitled, <a href="http://blogs.msdn.com/ie/archive/2009/06/19/how-we-used-user-research-data-to-help-design-compatibility-view.aspx">Compatibility View and &#8220;Smart Defaults&#8221;</a>, we got clarificiation as to exactly what this behaviour is, and when we can expect it to affect us;</p>
<blockquote><p>For the most part, we’ve removed assertions from our retail code. That said, there are particular code paths within the new layout engine where, should an error occur, the layout process can’t gracefully recover and we’ve kept assertions around these paths. In the IE8 Beta builds, encountering one of these layout “hard asserts” caused IE to display a blank page &#8211; the thought process being that it was better to show the user nothing at all than allow interaction with a corrupt or otherwise obviously incorrectly displayed page. We refined this experience further in the released version of IE8 by recovering layout “hard asserts” using Compatibility View. In other words, we believe that showing a page the way IE7 would have offers a better user experience than showing no content at all.</p>
<p><cite><a href="#">Compatibility View and &#8220;Smart Defaults&#8221; article</a> on <a href="#">IEBlog</a></cite></p></blockquote>
<p>In short, when IE8 detects an error which, as we&#8217;ve seen, can be invoked by <a href="http://idreamincode.co.uk/ie8-bugs#overflowscroll-float-maxheight">certain CSS property combinations</a>, the browser will fall-back to rendering that document (and entire domain) in Compatibility View. Note however, that this process only applies when you <strong>don&#8217;t</strong> force Standards Mode using either the META declaration or HTTP Header. If however, you do force Standards Mode in this instance, IE8 will display a blank page.</p>
<p>Firstly, it&#8217;s quite astonishing to think that it&#8217;s possible to invoke complete page blankness simply by using a combination of CSS properties. What&#8217;s more, the latter option of forcing Standards Mode is now being used as a pre-emptive measure by authors who, one way or another, have misunderstood the information published by Microsoft and are afraid of their sites being rendered by users in Compatibility View. Ultimately, the combination of forcing Standards Mode and utilising certain CSS property combinations is likely to have some disastrous effects. Secondly, by <strong>not</strong> forcing Standards Mode, an author is inadvertently introducing the possibility of their entire domain being rendered in Compatibility View, for the remainder of that browser session. This is simply another of the many irrational decisions made by Microsoft throughout the development of IE8.</p>
<h2>Aside</h2>
<h3>Bug Testing</h3>
<p>First off, let me expell some myths &#8211; a) IE8 is <strong>not</strong> fully CSS 2.1 compliant, b) passing Acid 2 does <strong>not</strong> mean a browser is fully CSS 2.1 compliant and, c) creating and passing 7000 or so of your own tests also does <strong>not</strong> mean you&#8217;re fully CSS 2.1 compliant.</p>
<p>If you&#8217;ve been keeping track of my <a href="http://idreamincode.co.uk/ie8-bugs">IE8 bugs page</a>, you&#8217;ll see there&#8217;s been a steady stream of additions to the list &#8211; it currently stands at 51 CSS bugs. This is, to some part, thanks to folks who wrote in about issues they&#8217;ve come across, which has meant many more bugs have been identified and logged on Connect. If you&#8217;re someone who has taken the time to write in and I haven&#8217;t been in contact yet, please bear with me; I&#8217;ve had a lot on my plate over the past few months, but I assure you I&#8217;ll get round to replying to you, and filing the issue if neccessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/general-stuff/compatibility-view-and-hard-asserts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link exchanging with a positive side-effect</title>
		<link>http://jhop.me/general-stuff/link-exchanging-with-a-positive-side-effect</link>
		<comments>http://jhop.me/general-stuff/link-exchanging-with-a-positive-side-effect#comments</comments>
		<pubDate>Thu, 02 Apr 2009 21:08:00 +0000</pubDate>
		<dc:creator>James Hopkins</dc:creator>
				<category><![CDATA[General stuff]]></category>

		<guid isPermaLink="false">http://idreamincode.co.uk/?p=521</guid>
		<description><![CDATA[Upon visiting the W3C Supporters Program page it became fairly obvious that some companies (whose choice of keywords in link text are reminiscent of a spammed bulletin board) are wiling to pay upwards of $2500 to get a (good) bit of link juice from this PR 8 page.
I am however, surprised that Ian Jacobs or [...]]]></description>
			<content:encoded><![CDATA[<p>Upon visiting the <a href="http://www.w3.org/Consortium/sup">W3C Supporters Program page</a> it became fairly obvious that some companies (whose choice of keywords in link text are reminiscent of a spammed bulletin board) are wiling to pay upwards of $2500 to get a (good) bit of link juice from this <acronym title="PageRank">PR</acronym> 8 page.</p>
<p>I am however, surprised that <a href="http://www.w3.org/People/Jacobs/">Ian Jacobs</a> or whoever owns the page would, first of all, allow so blatantly obvious generic keywords and, use a such a mix of capitalization and lowercase link text. Just an observation.</p>
]]></content:encoded>
			<wfw:commentRss>http://jhop.me/general-stuff/link-exchanging-with-a-positive-side-effect/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.407 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-31 05:01:49 -->
