Ask Shane: Mobile optimization and device detection

Jeanne Rash asks:

Can you give any advice on:
Should I be concerned that the W3C MobileOK service gives my pages severe ratings for the JQM css syntax and the size of the js files?
I looked at this tool ( I'm very impressed that they would build such a tool to help us developers. It is certainly a great starting point for anyone building a site from hand. The W3C is about Open Web Standards (as they should be). This must be respected and embraced whenever possible because it's the best way to be future friendly. However, when you trying to make a universal library and the excrement hits the oscillator (, you're left few choices, abandon your mission for universality or make pragmatic compromises. The most nobel part of the JQM mission is that they are trying to make a library based on progressive enhancement and beautified for anyone who can handle it. So, if a few academic points get sacrificed along the way, I'm fine with that. But that's a choice every developer will have to make on their own. Yes, some of the assets can be "large" but between content delivery networks with long expirations and system caches being able to reliably store CSS and JS files up to 1MB, so what?! The truth is, with the way TCP/IP works, you're better off having one or two large files than lots of little ones. GZip compression makes this even less of a concern by taking the library JS from 115K to 37K. That's probably smaller than your site's logo. So, I truly fail to see the issue.
I have pages that I want to limit to grade A devices only. Do you know if your mobile re-direct code can be adapted to send grade B and C devices to other pages?
I believe that, yes, my solution for redirection would only bring in the grade A devices. However, if you wanted to be sure, the jQuery Mobile library has a method $.mobile.gradeA that returns boolean. Here's an excerpt. $.mobile.gradeA = function(){ return $.support.mediaquery || $ && $ >= 7; }; If you want to send everyone possible to mobile and sort it out there, try the WURFL database ( to see who's mobile on the server side first and use the jQuery Mobile scripts or mine to differentiate between between grade A and the rest.