The mobile web is still pretty new. There are a lot of different browsers and not a lot of standardization across them. It’s something like the browser wars of Netscape v. Internet Explorer from 10 years ago. Only on steroids.
I’m no stranger to dealing with cross-browser compatibility, but when you start talking about supporting mobile browsers, support just gets insane. Pocket IE renders completely different than Opera Mini and both render completely different than a phone’s built-in browser, and then different phones have different built-in browsers. And none of them are specifically target-able, like IE for the desktop is (similar to how we cannot really target IE/Mac).
Even worse is lackadaisical support for the handheld media type for CSS. Pocket IE uses both the Screen and Handheld types, but defaults to Screen, whereas some devices like Blackberry’s just pretend to be desktop computers but their browsers hardly support anything. It’s really quite aggravating.
And then we get into the actual accessibility of the browsers, or rather, lack thereof. Opera Mini doesn’t support accesskey declarations. This isn’t a huge problem, but when you consider how long some websites can become when forced to only be 176 pixels wide, losing the ability to just hit a key on the phone and skip past parts of the content sucks. Of course, that also assumes that named anchor links work, which some browsers (Opera Mini I’m looking at you again) don’t support.
The only hope we have is for people to create logical, semantic websites that degrade well.
Hopefully the next few years will show some sort of standardization occurring across the myriad mobile phones and browsers in how they interpret and interact with the web. Mobile web is still in its infancy, but it will grow up quickly.