Archive for May, 2008

Arguments for implementing semantic interfaces

Wednesday, May 28th, 2008

Further to arguments against semantics, there are also viable and strong value-adding arguments for semantics. These are:

Semantics give meaning to interfaces

This is by far the most important argument for semantics.

Using semantic mark-up on web pages gives web pages meaning!

Many web developers today still misunderstand the basic definition of semantics and can tend towards thinking that it is somehow about ‘the look of a page with style sheets turned off’, but, in fact, semantics are all about meaning of web pages.

The ‘meaning’ is important for both users (end users and developers of interfaces) as well as machines (which are just another form of users) such as search engine robots and (in future) various semantic interface harnessing tools and languages.

Semantics add value to interfaces

Semantics add value for all types of users.

Chances are not all users of a web site have a big screens, a mouse, a powerful PC, know what they are doing and see very well.

In fact, it is 100% certain that your web site has at least 1 very disabled user, but one that plays (perhaps) the most important role in your web site – Google search robot (also known as indexer).

Semantics aid usability and scalability

Properly developed semantic interfaces are very easy to scale up, re-style and re-organise (all positive and preferable features of any IT system).

Usability of semantic web sites is usually present both from end user perspective as well as from web site developer perspective.

Usability usually saves and earns more money. One example would be the fact that an easy to understand interface is easier for maintenance and upgrading, which saves developer time, which in turn saves money for an organisation.

As an example of usability feature presented by semantic interface would be ability to call a telephone number on a web page directly from Skype, if that telephone number has been marked up as a micro format.

One click and the end user is directly in a telephone conversation with your company’s sales department, generating business for your organisation.

Increases ROI by increasing findability and re-findability

One of the most important aspects of any web sites is that it needs to be findable and re-findable.

Semantic interfaces by their very nature and the fact that they are standards compliant tend to be naturally easier to find, analyse, understand and index for search robots.

The very fact that your interfaces are standards compliant tell search robots that you know what you are doing when it comes to web development and search engines tend to treat this factor very favourably.

In future it may be the case that only standards compliant web sites will be considered ‘valid’ solutions for showing up in search engine result pages.

The very fact that (for example) your e-commerce web site can be easily found will mean that you will obtain more visitors to your site, which ought to convert into more sales for your business.

This way, semantic interfaces become direct mechanisms through which ROI of a business can be increased, without implementing anything other than the standards which have been set out for us in order to make our lives simpler and faster, while increasing quality.

Semantics enable data sharing between applications

W3C standards are not enough in order to provide semantic interfaces.

Semantic interfaces are extensions to W3C standards and can provide much more meaning than just POSH (Plain Old Semantic HTML).

With emergence of de-facto standards like micro formats, it has become possible to ‘share’ data from one site with another site without much problems.

RSS feeds are also there to aid similar functionality, but micro formats create ‘interfaces as APIs’, meaning that any machine from anywhere could harvest useful data from your web site (such as your product offers) and make it available in the relevant section of their web site.

Excellent example is Google’s shopping section, which data mines product offers from various web sites on the web and then offers a comparison functionality to enable users of Google search engine to find the best deals across the web and shop from the related web sites.

Semantic interfaces can directly enable this type of functionality and is the reason why web sites like Amazon and Argos are the two most popular e-commerce web sites in UK.

Semantics enable leveraging of social networks

Apart from becoming more meaningful, the web is becoming more ‘personal’ and catered towards group of people with similar interests.

Social networks play a key role in creating these on-line communities and semantic mark-up is, once again, at the heart of enabling development and utilisation of meaningful social networks that work.

Micro formats, RSS and Atom feeds as well as RDF are just some of the examples of technologies which are making this functionality possible.

Less error prone interfaces

For a long time now I have believed in creating web sites without using browser specific hacks.

My latest development of Flexewebs CMS is a good example of how a nice web site can be created using valid (in this case XHTML1.0 Strict) HTML code and simple CSS rules in order to create a scalable and cross browser fast performing interface without any hacks.

Using XHTML1.0 Strict with W3C standards compliant mark up has always made my development life easier and created interfaces which are much easier to control using the usual development tools we have available to ourselves.

More ‘meaningful’ interfaces

Semantic interfaces are also able to communicate a corporate message in a much more meaningful manner than non-semantic interfaces.

Sharing your company’s contact details (for example) using micro formats is a much better approach than doing it in a proprietary, non-standard manner which cannot be easily found by various directories and search engines.

Arguments against semantic interfaces

Tuesday, May 27th, 2008

In our day-to-day work on creating good quality web interfaces, we inevitably come across various arguments against using semantic and proper markup in order to develop interfaces. Some of these arguments may be one or more of the following:

Semantic interfaces will not make more money for the organisation

There are many companies out there that do not know what semantics are all about. After all semantics are only now being taught at Universities.

From that lack of understanding stems the lack of belief that semantic interfaces will add more value to business and therefore make more money for the organisation.

It could be almost impossible bringing a client up-to-date with what is currently going on with Internet and where it is all heading towards.

Usually one of the best ways to show someone value of semantics is to demonstrate a working example of where they have made a difference, but often this does not work as clients can be sceptical about whether the same or similar approach would work for their business.

Semantics may only benefit Google and Yahoo

Some companies who are a little more insightful about web technologies, various activities taking place between various ‘big players’ (Google, Yahoo, Microsoft) may say that adding semantics to web pages is all about helping various data mining technologies do a quicker and better job of ‘stealing’ data from various web sites and storing them in a very structured way into their own databases.

Later on, these big players will (one way or another) be making money through re-representing that data to their users in a way which, in the long term, may take users away from the initial web site where the data originated from.

This argument could potentially prove to be a very good one, but let’s wait and see what happens in the future.

An example here would be the situation of what happened with Google News, where many publishers were annoyed by the fact that their content was being harvested by Google to show a list of latest news headlines.

Publishers of news were annoyed about the fact that Google was comapring their content with competing newspapers’ content, as well as potentially stealing their advertising revenue, based on material which the newspapers wrote themselves in the first place.

Semantics are a (very) (fast) moving target

One day a micro format may look one way – another day it may change. Some clients may perceive things to be moving forward very fast, but in reality we all know this is not really the case.

If anything, things are moving too slowly forward (look at what happened with HTML5 vs. XHTML2.0 situation).

Clients may feel that constant changes which affect web user interfaces mean that ‘waiting for later’ in order to implement new features is a good idea. In reality this often proves to be a matter which loses the given company a competitive advantage.

Semantics are not really a standard

Semantics are at best a ‘tribally’ accepted set of ‘common practices’ and semantic developers disagree heavily amongst each other about what really constitutes proper semantic interfaces.

There is no be-all and end-all document which outlines all the possible situations which web developers could find themselves in from project to project. What should standard implementations then be?!

Yahoo may come up with some common patterns to use when developing for web, but may of these patterns in practice show to be an overkill or not fitting the purposes for whatever reason. Yahoo’s patterns are often suitable for ‘mega-sites’ like Yahoo itself, but not necessarily for smaller and medium sites.

Many companies simply do not care about semantics on their web sites

For most companies the age old approach of ‘just get it done’ still rules the business.

Nike made billions out of it by rephrasing that into ‘Just do it’, but in IT domain this approach is incredibly dangerous and creates solutions which are virtually impossible to maintain even in the short term and take many times longer to develop in the first place, with many more people than really needed.

This is arguably one of the biggest problems web developers may come across today when trying to implement proper solutions.

Bottom line is that clients care about money and time and web developers (wrongly) jump to conclusions that implementing semantic and standards compliant solutions will take more money and more time for the client. In fact, in practice it ought to take less time and money! All it requires is a an appropriate enough approach.

Current situation and value of semantics

Tuesday, May 27th, 2008

Just like anything in life, semantics, and their impact, can be evaluated within a business and it is possible to work out whether they are ‘worth it’ in terms of implementation.

They will be worth it if they add more value than they consume in order to develop.

I suppose one of the most ‘expensive’ matters in semantic interfaces can be obtaining a bad quality ‘semantic’ web site solution, which does not meet standards, expectations and it’s purpose.

I would estimate that within Greater London, United Kingdom, there exist around 1000 active truly semantic web developers, most of which are constantly tied up in roles working on various big web sites.

The question is then: ‘what do companies which do not have access to these developers do in order to create proper semantic interfaces?’. The answer is: ‘they obtain solutions which do not really comply with proper guidelines’.

Reality of life seems to be that most developers are either incapable of learning semantics properly, or simply do not care about semantics.

Both circumstances are bad for companies which are looking to obtain good quality, semantic solutions in order to reap the rewards Web 2.0 can bring to them.

It is also true that companies impose unrealistic deadlines on development of semantic interfaces, which are either impossible to meet or can only be met partially.

This is counter productive for everyone, as it creates a culture of ‘not caring’ amongst developers, while companies tend to blame developers for being incapable of creating solutions which work.

I am also acutely aware of the fact that search engines are valuing semantic features on interfaces much more than before and are awarding those solutions which are easily recognised by automated tools as containing set pieces of data (such as contact details, addresses, Geo locations, events, etc.)

Many companies also struggle with implementing pixel perfect cross browser solutions, spending many hours on them, while overlooking much more important semantic related factors of their interfaces.

SEO consultancy is implemented at the very end of the process, as opposed to from the very start.

SEO unaware developers work on creating solutions for which they believe are correct and will get well optimised, something that usually results in no Google rank whatsoever, as putting an h1 around logo is seen as ‘good practice’ as ‘logo is the most important aspect of every page’, which is, of course, so blatantly not true that it is arguably not even worth discussing.

Standards compliance

Monday, May 26th, 2008

In many discussions with various developers I have heard the term ‘standards compliance’ used very loosely to, usually, denote the idea that (X)HTML code of web pages on a given web site validate against a W3C validator of some sort.

Unfortunately, I would not consider simply just a W3C (X)HTML compliant web site in any way standards compliant today at all. At best, (X)HTML code validity is a fairly good first step towards achieving ‘standards compliance’.

Here is a quick insight into different grades of standards compliance which I would consider as required, relevant and highly recommended for implementation on every web based project.

Good standards compliance

Better standards compliance

Much better

  • Include all the above steps, and also
  • Use microformats wherever possible
  • Ensure at least AA accessibility compliance
  • Ensure graceful degradation of the code (especially JavaScript)
  • Make sure your pages are below 100Kb in size by all means

Best

  • All of the above, but also
  • Make sure the web site is usable (not just accessible) within a screen reader, which should also mean that the web site is easily usable for normal users without use of a mouse
  • Create site architecture which is SEO ready from the outset (including pretty URLs)
  • Ensure compatibility with future browsers/clients (mobile phones, playstations and small laptops)
  • Ensure that the overall solution is very consistently implemented, including common approach to component coding, clear and concise reusable site portions, etc.
  • Ensure (re)use of commonly recognised and well adopted UI design patterns
  • Code with future compatibility in mind, so as to ensure forward compatibility with emerging technologies and new versions of web browsers

The above check list is by no means definite, final or full, but it is a good starting check point to ensure that the end product of a web site is of high quality and fit for the web of today and evenly reaches all types of users hitting your web site day to day.

Use W3C as reference for semantics

Sunday, May 25th, 2008

I find it astonishing to see how many developers create their own sense of modern web technologies based on various snippets of information they gather from all around the web.

Unfortunately information nowadays usually comes from amateur developers with too much spare time to spend on forums and various mailing lists, but not enough time spent trying to implement solid, scalable and useful semantic solutions.

The best place to learn about semantics from is, of course, W3C, which is the closest thing to ‘standards’ we have on the web.

I have had a privilege to work directly for an organisation which is an active member of W3C and have been forced to think about pros and cons of (X)HTML and its implementations and definitions.

This experience has taught me to reference the documentation as often as I need to.

Remember, no-one is expected to know everything off by heart, but at the same time you should not make up solutions based on your gut feelings, unless you are 100% sure about what you are talking about.

W3C is contributed to by very talented engineers and people from world’s leading corporations (i.e. Google, Microsoft, IBM, etc.), who know what they are talking about and have experience working on truly global web-based projects.

Chances are that (however sceptical you might be about each one of these companies) these people know a thing or two about what is happening on the Web and what ought to be happening in the future for the good of us all.

Once you try to propose something a little more meaningful towards a W3C specification you soon become aware of the real strengths and weaknesses of your proposal and work out that it might be useful for you, but not necessarily for the entire world, which is the whole point of Web technologies and the Web itself.

In order not to be preaching any further I find it very useful to refer to the following documents as often as it is necessary:

Using just those three documents as much as possible will get you very far in the world of semantics and proper UI web developement.

I have been studying them for many years now and some subtle points from those documents still strike me as very interesting and wise even today.

Introduction

Saturday, May 24th, 2008

It has come to my attention in the last couple of years that many ‘good quality’ user interface developers out there are having various understanding of what constitutes proper, semantic interfaces and what makes each part of a given web page ‘appropriate’ for the time we are living in.

I have therefore decided to start up a whole blog on the subject of semantics and semantic HTML, based on the experience which I have developed so far and am still developing on day-to-day basis.

These are my own lessons learnt, which I would like to share with the world with hope that it is going to help other people improve the quality of their own code and therefore improve the quality of the web as a whole.

I have conceptualised this blog as an evolving book of references to code samples which, hopefully, others will be able to reference against, use within their own web sites, build upon and make better for the common good.

I will try to write short posts, without waffle and to the point. I might throw in an odd (irrelevant) picture to break the monotony a bit and, if I can be bothered, a diagram explaining what I am talking about in order to illustrate the points a bit better.

Without further ado, lets move onto the first post about our subject at hand.