Web BandAids

Over the past 5 years the aids to using HTML5 and other key Web tools have accumulated rapidly. And the need for advice when and how to use features in Web tools has not abated. First there is the continuing rapid release of new features as mobiles and the IoT-Internet of Things bring new demands on the full stack of Web tools from HTML, CSS, DOM, JavaScript etc. . As well there is the usual unhelpful sparring among browser and software vendors.

For example, take the use of offline data, particularly SQL. This has been FUBARED  because of an awful decision by Mozilla/Firefox and Microsoft/IE not to support WebSQL. So now users needing to support multi-tables that requires joins of different tables [think Products, Clients, Orders or Rooms, Devices, Connectors as some very common examples not served well by Indexeddb, the Mozilla “solution”] have to resort to a wide array of fallbacks [either error traps or replacement extensions], shims [complete but non-standard replacements] and/or polyfills [different routines depending on what browser is being used]. So here are some of the Web  BandAids that help patch up things so you can get find out how to use Web tools most effectively.


html5testHTML5Tests tells which browsers have been good and which have been bad in implementing the ever-expanding HTML5 API. It is not comprehensive but does give a you bearings on what browser to use. Chrome continues to lead among the 5 major browsers while Apple Safari has wrested the dubious crown of worst browser by a growing margin [congratulations to Tim Cook & company for despoiling the Apple Web Brand] from Microsoft and IE.

Can I Use
Caniuse.com is the more definitive source of what is happening with browser implementations of HTML5, CSS, and JS not because of comprehensiveness but rather for the mobile browser info and the links back to the W3C and other standard bodies for more detailed descriptions of what the current state of the specific API is. Caniuse has better coverage of topics  interest to  web developers.


html5pleaseCome to HTML5Please when  you can’t find a definitive statement from HTML5Test or Caniuse on the status of some HTML5,  CSS, JS, etc. Alternatively, come here when you have found a feature is not fully supported. HTML5Please sometimes has some nifty shims, fallbacks and other workaround plus the links to where you can do better. Not all the answers but helpful in contrast to the WebStandards Project which has mercifully only congratulated itself into silence.


The following resources take up the broader definition of Web development using not just HTML5 but the full stack of Web standards including  CSS, JavaScript, DOM, SVG, and other APIs.
W3C Web Platform Project
For anybody who has searched therough the W3C specifications and recommendations document and got terribly lost, W3C and others have finally delivered better and more concise documentation for stnadrds such as HTML, CSS, DOM, JavaScript, SVG. There is even attempt to put the information  into a broader context with a Beginners Guide and General Web Concepts. Belated but finally bravo.

What sets W3schools apart is two things. First, W3schools covers the full stack of Web Development tools adding major sections on popular libraries like jQuery. Angular.js, Canvas, SVG, PHP, SQL, ASP, etc. Second, with its Try-it window users can tryout snippets of HTML, CSS, JavaScript and other language code and see right away how it works and try out variations. This is a great learning tool for beginners [basic HTML, CSS, DOM, SQL, and JavaScript] to advanced Web app specialists [Angular.js, AMPL.js, SVG, Canvas, etc].


HTML5BoilerPlate is somewhat misnamed because it also includes starting CSS and JS code that makes a very good starting point of for single page web apps using Bootstrap, Foundation Zurb and INK. The advantage of BoilerPlate is that users can download a custom build. Other web tools like WordPress, Drupal, Joomla etc often supply Boilerplate functionality in their themes. But check through the Boilerplate source code to make sure your CMS or Web App is complete.


If you been asking, is there a library that can detect what features a browser offers and then offer some fallback functionality?  – then you have defined the purpose of Modernzr:

html5modernzrThis JavaScript library is invaluable for Web developers allowing them to customize web code depending on what is the the capabilities of the browser their app has to deal with. These are the key tests that allow for fallback and/or polyfill tactics. It is far from perfect but this is the role that Web developers have been cast in since the beginning of the Internet. Patching the browser vendors missing features.

At first it was just the rapid Web development with even standard setters behind the curve on Web innovations and coding developments. But Microsoft under Bill Gates and Steve Ballmer tried to establish a proprietary web based on IE’s dominance of browsers. That failed; but Apple with Safari is now trying the same tactic slowing down or not implementing  not just HTML5 but also other Web standards such that Apple has now become the Web standards laggard. Now rightfully, Apple has been praised for its Webkit and other Web standards innovations from 5-10 years ago, but the consensus is that Apple under Tim Cook  has become the Web Standards Delayers-in-Chief. which the other Web vendors may find convenient to lamely follow depending on the implications to their own Web  software stack.


Hence the rise of Web Bandaids. They first arose because of rapid Web developments across the board ahead of Web standards; but now these advisories and coding aids are now necessary but often insufficient tools to patch up the differences between the major Web vendors browsers and other Web tools. Its the Sisyphus work of users and developers  having to fill in for the  deficits of the Web’s patriarchs.