Archive for March, 2008

More semantics in Yahoo searches courtesy of Microformats

A couple of weeks ago it was announced that Yahoo will start indexing Microformats including hCard, hCalendar, hReview, hAtom, and XFN types.

It’s great to see one of the big players shape up and start to implement this relatively new technology, and it would be great to see the other major SE’s follow suit soon. What with IE8’s ‘microformats-to-all’ push with it’s Web Slices feature based on hAtom (although it does on top of hAtom),

Although I don’t really have time at the moment to get into a full-on Microformats chit-chat, I did however find this article on SitePoint authored by that goes into some depth as to why it might be better to use RDFA rather that Microformats in this particular environment.

Anyway, it’s a joy to see that we’re one more step forward to a semantic web!

Today I nearly broke down in tears (with annoyance)…

The past week has provided us with some interesting news.

First off, there’s been a hype of activity from both Webkit and Opera – Webkit’s blog kept us informed that it’s Acid3 DOM test score was increasing, it seemed every day, which ultimately led to it announcing on Wednesday that it had released a public build of a successful Acid3 rendering pass (but not an animation pass). This announcement came very soon (on the same day, in fact) after David announced that Opera’s latest internal build had passed all 100 DOM tests- it was just very unfortunate that some people misinterpreted this information and started accusing the Opera team of pulling stunts and deliberately trying to mislead – a sad state of affairs, especially because it came a result of this great news.

However this is not why I felt tearful.

MS decided to publish an article which details planned CSS support in the final release of IE8, which put a complete dampener on the day that I read it.

As I thought right from the start of talk of it’s release, CSS3 support is extremely disappointing, which is guaranteed to slow the adoption of features of CSS3. Well done Dean and the rest of the IE team- you’ve come up with yet another inferior browser.

which is guaranteed to slow the adoption of the fundamental layout-specific features of CSS3.

I’ve written a basic overview of the article. It mentions:-

  • NO planned support for CSS3 pseudo classes
  • NO planned support for CSS3 pseudo elements
  • NO planned support for CSS3 features in Backgrounds and Borders module (no multiple backgrounds, background-size etc)
  • NO planned support for CSS3 features in Color module (no RGBA, opacity etc)
  • SOME support for Level 3 of Text module
  • MINOR support for Basic UI module. Hardly surprising as the module currently has no owner, and there is no test suite Nice though to see that they’ve implemented box-sizing even though it’s with their own prefix.
  • NO support for Multi-Column module.
  • NO Media Query support

Before the announcement went public, I took it as a given that IE would HAVE to pass Acid2; looking back, it would have been simply astonishing if it hadn’t. But, now vendors are focusing on Acid3, which makes its predecessor completely redundant- with this in mind, there was absolutely no reason why the IE8 Acid2 pass story should have been as big as it was.

IE8 Beta 1 CSS Regression Bug(s)

Whilst carrying out some further QA, I’ve noticed at least one regression bug that has creeped in and in the process of notifying the guys at IE

23/03/08

I promised to bump this post, didn’t I? As I simply don’t have the scope to focus on IE8’s (many) bugs, I though I’d let these guys do it:-

16/03/08

  • html element padding – specifying a padding value (more than null) on html element has no effect (); corrected behaviour visible in IE7 and IE6.

Current Media Queries support in Firefox

Well, at time of writing support is non existent even in the latest nightlies (3.0b5pre), which to me is a slight bit surprising since both Opera and Safari have supported Media Queries for while now. I guess the main push behind module support for both Opera and Safari was to ease web development for their mobile/handheld browsers.

However, what with Mozilla planning a full scale drive into the mobile browser market soon with the release of , it’s crucial that module support is included. Judging by the relevant bug ticket, it looks as though there’s not much going on; David Baron’s last entry was in November 2006 simply stating that support is WIP- perhaps I’m missing something?!

Unfortunately there were several open issues regarding Media Queries including parsing expectations and general deliberating among members of the WG which prevented the module appearing in the ‘07 Snapshot, however it’s near certain to be in this years version.

It’s no surprise that Media Queries support is required to pass Acid 3, so FF could kill two birds with one stone – gain an additional point (to add to their 71) and allow developers to take advantages of this cool module.

If you asked me a year or so ago whether IE would actually implement a module before FF, I would have laughed my head off, but now it doesn’t look so clear cut. OK, perhaps I’m being a bit extreme saying that….

Hmm, so this is why MS Office formats aren’t nice?

Yes, today is a first for my blog – two posts in one day!

I was checking out Anne’s blog earlier and came across this link (PDF doc), which looks as though it’s an internal email from Bill Gates himself, talking (pretty franky, I may add) about the need for Office formats to rely on the proprietary capabilities of IE.

The PDF in question resides in a directory at egde-op.org – there’s lots of other emails in that directory, if you fancy a browse. I’m guessing (only from the directory name, and Plaintiff’s Exhibit stamp) that this is some public evidence relating to the Iowa Consumer Case vs Microsoft.

Interesting reading anyway.

Yet more innovation from the Webkit guys

Yesterday, Dave Hyatt announced that the Webkit team have added a new proprietary value for the ‘background-clip’ property- go to my post on CSS3.Info to read more.

Perhaps the next nightly could removed the need for the webkit prefix on the ‘box-sizing’ property, rather than implementing any more proprietary features??

Safari 3.1 released – congratulations are in order

Peter pointed out in an article on CSS3.Info that Safari 3.1 had been released both as a standalone install or automatic software update for OSX [curses software update check been set to weekly rather than daily]; for this reason, until I read his article I had no idea they’d released it so early.

It’s a nice surprise to see what CSS/SVG support they’ve implemented:-

  • complete CSS3 selector support - wahey, we can now start thinking about using nth-child’s, :target’s more seriously now.
  • CSS3 Web Fonts – stop thinking Arial, Tahoma, Georgia… start thinking completely custom fonts.
  • SVG’s in <img> elements and CSS bg images – more semantically correct than using <embed> (has never been a W3C recommendation (has become more of a defacto property) and doesn’t support nested alt content) and <object> for image instances.

We know Webkit has been implementing some cool features of HTML5 already (even though it’s still a WD):-

  • Client-side database storage – really exciting to see this implemented already.
  • <video> and <audio> element support

All in all, a nice little update I’m sure you’ll agree.

I’ll be at @media 08 London

This will be my first trip to a conference this year and there looks to be some good speakers which I look forward to hearing from- it’s also just round the corner from where I’m working at the moment, which is ideal!

If you’re planning to come along, holla back and we’ll have to try and meet up at the event.

On a separate note, I’d be interested to hear your feedback on what you think of the social bookmark plugin I added a few days ago – what does everyone think? Is it a bit too much? Get in contact…

The CSS3 ‘box-sizing’ concept

The age-old problem of having to use the conventional Level 2.1 box model in conjunction with padding and/or border values is solved using CSS3. Up until now, this problem was a major stumbling block for developers, particularly in the instance of specifying a border/padding value in relation to a fluid length element, but the new ‘box-sizing’ property answers this problem.

Firstly though, I’m going to quickly skim over an alternative to this box model addition which comes in the form of the ‘calc()’ function. Unlike the new (although the same model is implemented in versions of IE up to 6) box sizing concept where it’s the user agent’s responsibility to calculate any border and padding value (minimizing input from the author) , ‘calc()’ requires the author to hard-code any border or padding values directly into the function itself. I also feel the ‘calc()’ function is overly complex (complicated syntax (multiple arithmetic operators etc)) for the purpose this article looks at, and for that reason I’ll be focusing my attention on ‘box-sizing’.

CSS3 introduces the Basic UI module (currently a CR) – ‘box-sizing’ property is a proposal that brings with it the opportunity for the user to choose between several box models.

There are currently two values in the official spec- ‘content-box’ and ‘border-box’:-

  • ‘content-box’ – “This is the behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element. The padding and border of the element are laid out and drawn outside the specified width and height.”
  • ‘border-box’ – “The specified width and height (and respective min/max properties) on this element determine the border box of the element. That is, any padding or border specified on the element is laid out and drawn inside this specified width and height. The content width and height are calculated by subtracting the border and padding widths of the respective sides from the specified ‘width’ and ‘height’ properties.”

The Mozilla team have implemented the proprietary ‘padding-box’ value, where the width and height of the box includes any padding value but not a border value.

Current Support

  • Opera 8.5+ : ‘box-sizing
  • Firefox 1+ : ‘-moz-box-sizing;’
  • Safari 3 : ‘-webkit-box-sizing
  • IE8 : ‘box-sizing

Commenting on in which I call for Webkit to drop it’s prefix for this property, that the team did in fact remove the need for the ‘-webkit prefix for a while but they apparently broke on some prominent websites, which he puts the reason down to site authors targeting specifically Mac IE (which implemented the property without the need for a prefix – nice work Tantek); I’m still unclear as to how this would affect any current or future implementation from any vendor, let alone Apple, as Opera have managed it fine. After an email asking for some clarification, Dave informed me that they shipped the initial version of the phone browser without the prefix, but had to revert due to the breakage issues; he doesn’t mention however when we can expect the ‘-webkit‘ prefix to be dropped.

Properties the ‘box-sizing’ concept can be applied to

  • height
  • width
  • min-width
  • max-width
  • min-height
  • max-height

Keyword values that the ‘box-sizing’ concept can’t be applied to

These include some proposed keyword values.

  • auto
  • none (max-width/max-height only)
  • fit-content (proposal)
  • min-content (proposal)
  • max-content (proposal)

Related Module Implementation

The Values and Units Level 3 module has been a WD since Sep ‘07, whilst Basic UI has been a CR since May 04. With that in mind you could argue that Basic UI is a fairly mature module however, at time of writing it has no official owner which one could deem a reason why progress has been slow. Not surprisingly then does the spec look fairly unpolished; the W3C have placed a CR exit criteria on the module requiring two or more interoperable implementations to be found for each feature. Similarly there are multiple features that are at risk from being removed from the module- the same criteria applies but with the addition that ‘at-risk’ feature implementations need to be found by the end of the CR period. However, the fundamental issue that is holding progress up is that, as of yet, a test suite doesn’t exist – without a suitable test suite in place, we can’t prove to the WG that implementations exist, which means the module won’t move out of CR. For the time being, it looks to me that the CR period will be extended indefinitely until ownership of the module is sorted out and an adequate test suite is implemented.

It would be great for a vendor such as Opera (who is already supporting part of the module) to create their own test suite for inclusion in an official W3C version, much like the way the IE guys have recently proposed – this would help speed up the process of taking the module out of CR.

Where to go from here?

Recently I’ve been exchanging emails with fantasai regarding the ongoing status of Basic UI; we’re both in agreement that the concept of providing an alternative box model to developers is likely to become an integral solution looking forward, because as mentioned before, this additional box model specificity overcomes the ‘flaws’ of the current Level 2.1 version. However, unlike various ‘typographical’ CSS3 features in other modules which can be used in a progressive enhancement context, ‘box-sizing’ is of course a fundamental layout property thus, making it currently unsuitable to implement from a cross-browser point of view. However, fantasai has elaborated on the current spec and proposed a solution that solves the cascading issue that exists with both ‘box-sizing’ and ‘calc()’ – my feedback on her proposal. Her solution involves adding optional ‘content-box’ and ‘border-box’ keyword values to width and/or height declarations. Her solution was discussed at the recent (March 08) WG F2F in San Diego and members were strongly in favour – only 1/2 of one company’s representation was opposed. It was noted in the April ‘08 CSSWG minutes that her proposal should be adopted; I have however, given my own feedback opposing this move.

Conclusion

Moving forward, it is critical that we find a new owner for Basic UI (that’s if Tantek doesn’t want to be reinstated). Also, I feel we should take heed to fantasai’s concept and I would urge developers to come forward and critique it on www-style, so that one day either fantasai’s proposal or a similar solution can be adopted. As I’ve mentioned before, a sufficient test suite needs to be produced (either by a vendor and incorporated into an official version, or by the W3C directly), so that the WG can be provided with evidence of interoperable implementations. This means we could hopefully see the module featured in the ‘08 Snapshot, and wider browser support should follow, with or without vendor-specific prefixes.

Emulating IE7 in IE8 Beta 1

Forgive me for possibly coming across as ignorant – but when the IE team decided to implement this function, who did they think would use it? Is this a half-hearted attempt at a tool aimed at developers to allow them to test on both IE7 and IE8 on the same browser? Or is it a feature that they think their target market group are going to make use of?

Paul Cutsinger, IE’s Lead Program Manager explains over on the IE Blog that “it will help you with everyday browsing and with quickly checking your site as you work on it”; let me break his quote down:-

“it will help you with everyday browsing…”

How will it help someone with everyday browsing? If a site looks broken in IE8, the odds are that users aren’t going to wait around while the emulation process takes place (requires a complete browser restart); they’re just going to leave the site. I want to make my feelings quite clear – if a web developer doesn’t want to (or doesn’t know how to) create cross-browser compliant code then as a user, I shouldn’t expect to have to compromise my browsing experience due to their ignorance of standards-compliancy (or lack of knowledge) by having to take the regressive step of using the IE7 user agent string, version vector and layout modes.

Isn’t the ‘average joe’ going to be a bit bemused by the appearance of this shiny new button on their IE8? I have no doubt that they’ll disassociate themselves with it, as they’ll have no idea as to what it actually does.

“…and with quickly checking your site as you work on it”

Completing the backwards step of going from IE8 to IE7’s layout requires a complete restart of the browser. Even with the fastest PC, a user is still going to have to physically click buttons to complete the steps to switch layout modes. I hope this laborious process is simply down to the unpolished nature of a Beta; if we really have to go down the route of version emulation in the RC, the IE team needs to add an automatic close/open process- we shouldn’t expect end users to do this themselves.

So, who’s it actually for?

Well if I’m honest, I’m still not sure. Below I’ve highlighted the two possibilities:-

  • For developers- Why then is the emulation button in the position it is within the browser window? I recognise it’s a Beta, but if this feature does makes it through to the RC (which I fear it probably will do), this button needs to be removed from the main viewport and into the developer tools. The ‘average joe’ won’t understand what this feature does anyway, so leaving it on the main viewport is likely to lead to confusion as to what it actually is and does. Looking back over the history of emulation software, is MS unaware that just by simply emulating IE7 you shouldn’t expect to gain a true representation of an IE7 standalone. There’s no substitute to virtualisation and running a cloned base image alongside the original, with IE7 on one and IE8 on the other; failing that multiple versions of IE would be the second best solution; in the instance of IE6/7, it was down to a third party to provide developers with a solution for running two standalones side by side- it would be great if MS developed an official standalone version which doesn’t automatically overwrite IE7 and doesn’t muck with registry files.
  • For IE’s target market group- If in fact IE is marketing this feature directly to their target audience, then for a start they need to illustrate this feature (and the button) better. ‘Emulate IE7′ is likely to mean very little to the users that IE is targeting IE8 for.

Another agenda?

It’s no secret that MS are engaged in talks with the EU over anti-competition laws. I share the same opinion as others in that the sudden reverse decision to remove the opt-in standards mode days before the public Beta release of IE8 could have partly been down to MS taking note of what the EU were ultimately looking for them to do. I’m not complaining though; I’ve already expressed my delight before that the initial decision was reversed. From MS’s point of view it’s killed two birds with one stone; from the EU’s point of view it could be seen as a step towards opening up the browser market more. For us developers ultimately more vendors means more healthy competition, which means faster adoption of standards (think if FF hadn’t have come along, where would we be now; forced into using defacto standards and proprietary properties devised by IE?), and of course, the IE team now suggests IE8 is standards compliant (like we haven’t heard that statement enough times already).

NOTE:-The ‘Emulate IE7′ feature was specific to Beta 1 and has since been replaced by ‘Compatibility View‘, which I discuss in my review of Compatibility View