Skip to content

Web Technology

Jörg Hohwiller edited this page Oct 8, 2013 · 9 revisions

HTML was invented by CERN as an awesome idea and changed the entire world. Since then a lot of progress has been made and HTML, JavaScript and CSS improved a lot.

However, the technology is still painful to build real applications. It was never designed for this purpose and this has not really changed with HTML5. If you see all the awesome things that are already done on the web you may ask: what is the problem? The thing is that you can do almost everything with web technology but only by combining very low level constructs and tons of hacks. Using div and span tags you can render small pieces that combine to a large mosaic. But would you implement a complex application UI with X11 or wayland instead of GTK or QT? OK, there are lots of frameworks on top of HTML, JavaScript and CSS that also give you this shift but they are at least any of the following:

  • buggy
  • not properly support keyboard-control and accessibility
  • incomplete
  • not free (with free I mean something like ASL 2.0)

So what happens is that people are not happy with such framework and create yet another such framework. The actual question is: Why is there no movement to address the problems in HTML/JS/CSS and implement them in the (few) browsers instead of millions of users struggling with the same problems over and over?

To make it clear what I am talking about here are some typical and major issues not addressed properly by web-technology:

  • Why does "overflow: auto" not work on tbody in a table to make the content scrollable?
  • Why does table not support resizing, sorting and reordering columns?
  • Why is there no JS API to open an Element as a Popup (with options such as modal, movable, resizable, centered)?
  • Why does HTML not provide Menus?
  • Why does HTML not provide Tabbed Panels?
  • Why does HTML not provide proper Comboboxes? Date and time pickers? This is addressed with HTML5 but either not working yet or not addressing the needs (a ComboBox needs to have a button to expand and therefore a different visual appearance than a textbox so the user actually can realize it)
  • Why does HTML not provide Calendars?
  • Why does HTML not provide Trees?
  • Why does HTML not provide Tree-Grids?
  • ...

The Web2.0 hype nowadays forces many developer to build real applications with web-technology. But without web-technology supporting the complex widgets required to do so this is a really painful situation. You have cool APIs to render 3D graphics but to render a typical list-grid/data-table what is the most common use-case of any data-driven web-application there is no other support as a plain and nude table offered by HTML.

And have you ever seen the web through the eyes of a blind? Use a screen-reader and try to use a RIA build with one of these JavaScript frameworks. In most cases you will even fail if you still see but unplug your mouse. So there is yet another complex standard added for this WAI-ARIA. So we continue using span and div tags and adding role attributes forcing us to duplicate all existing state attributes into new aria-* attributes.

Further the web is also the successor of the mobile app or what? By mis-using these technologies our batteries are dying because the smartphone browser has to do all these complex stuff to do what could be expressed way more structured, compact and efficient.

I tried to get in touch with makers of web-technology but nobody seems to care: http://forums.whatwg.org/bb3/viewtopic.php?f=3&t=5138&sid=7711ddeb94d766d246917ec7f940cbd3

Sorry for being so negative here but I am struggling with all this stuff for decades now. Cool improvements have happened so far. However, I still can not understand what is going on with the world from the eyes of a developer and architect. Solutions really addressing the needs of developers such as Silverlight (I am not a fan of MS or .NET) have been washed away with peoples celebrating...

If you know a reason why we are talking about a semantic web and not willing to add semantic tags for every days widgets and features and instead render individual pixels with tags to combine the hole thing, please let me know. I am totally frustrated and lost in space...

Clone this wiki locally