Apple's iOS 7 is plagued with HTML5 defects related to the Web SQL database, home-screen widgets, gestures, and animations. Maximiliano Firtman, an HTML5 developer and author of several popular Web programming books, revealed several of these bugs in his blog. And Michael Mullany, CEO of Web development environment vendor Sencha, both confirmed Firtman's findings and found more problems in Apple's HTML5 execution.
Firtman was even more direct: "I can say without fear of mistake that this is the buggiest Safari version since 1.0." He noted that some bugs were reported by developers in iOS 7's three-month beta period, but were not fixed in the released version.
One problem area Firtman described involves Web SQL permissions not working correctly when trying to expand the database size beyond 5MB. In previous versions of iOS 7, the limit was 50MB, so many apps will now exceed that limit in their database downloads. Worse, if that limit is exceeded, the user will get a confirmation dialog box to allow the larger download but then only the first 5MB will actually be downloaded.
Firtman noted a workaround: If the app requests 5MB or less the first time and then requests more data, the user gets the permissions dialog box, and iOS 7 allows the extra data. Also, the bug doesn't appear to occur when apps are running in full-screen mode, which is the default in iOS 7.
Another issue Firtman detailed relates to iOS's ability to save home-screen icons of Web pages so that users can access them quickly as if they were apps. Firtman said that any URIs in the Web address -- the portion after the domain name -- is ignored, so a home-screen Web app can't invoke any functions in the URI when opened. Likewise, cookies are now ignored when opening a home-screen app. Also, if you store more than four Web pages as home-screen apps, iOS 7 often replaces icons of existing home-screen apps with the newly saved ones -- you get that errant replacement once your device has four home-screen Web app icons on it.
Mullany noted that when managing application state in apps that use AppCache, the history object never updates, disabling
history.back. This can cause applications to work incorrectly if they need a prior state to resume a function.