Saturday, April 28, 2007

ASP.NET 2.0 CSS Friendly Control Adapter to solve the accessibility issue in MOSS

The problems in MOSS regarding accessibility and web standards is getting more and more attention (see also http://tomaselfving.blogspot.com/2007/04/web-parts-and-accessibility-in-moss.html). Frank van Rooijen addresses the issue and points at a one solution based on the Microsoft ASP.NET 2.0 CSS Friendly Control Adapters in his blog http://blogs.tamtam.nl/frank/PermaLink,guid,aad39854-4f7d-4666-8a0a-0fc02f3cd01b.aspx

Copyright 2007, Tomas Elfving

Friday, April 20, 2007

Web 2.0 and the future of desktop apps

Web 2.0 has entered the business main stream. For a phrase coined by O'Reilly Media only in 2004, referring to a perceived second-generation of Web-based services that emphasize online collaboration and sharing among users, Web 2.0 seems to have already established itself as a driving force amazingly quickly, but appears to mean somewhat different things depending who you ask.

By using the version-numbers concept commonly used for software upgrades, the phrase "Web 2.0" confusingly hints at an improved version of the World Wide Web; it is instead name for web-based applications with a rich user interface often featuring collaborative functionality. It is built upon technologies (that have been around since long before the "Web 2.0"-expression buzz began) such as weblogs, social bookmarking, wikis, podcasts, RSS feeds , social software, Web APIs, Web standards and online Web services.

Time bar of Web 2.0 buzz words. This image shows the age of some buzzwords sometimes used in Web 2.0 lingo and its dependencies. (picture from http://en.wikipedia.org/wiki/Web_2.0)

Web 2.0 brings with it is a shift from desktop applications to shared spaces — collaboration delivered as a service over the internet. This is a break with the desktop centric world we have lived with during the "Windows" era. Rather than working out of a desktop application and exchange dokuments in various formats and expecting the reciever to have the same software installed to be able to read and work with the document, we may collaborate in the same "document" using shared spaces (wikis, blogs, project rooms, blogs, …) with invited friends and colleagues. Both long-term cooperation needs and more sponataneous situations is catered for. A new project may be initiated with an online project management tool, bringing a virtual team together across physical locations, time zones, and even organisations to work on a common project. The shared space space will just as efficiently be used for a few hours to resolve an emergency issue. Web 2.0 has obvious attractions in the enterprise, providing flexibility and improved cooperation by quickly being able to bring the right people to every task collaborating across space, time and room.

Still the Office-packages installed locally on the users desktop dominates . When it comes to document sharing and collaboration, portal tools with collaboration functionality only goes as far as making it possible to share document files in workgroup spaces.

Things will, however, become really interesingly when the real Web 2.0 killer app makes is launched with full strength: The web-based online word processor and spread sheet (see http://docs.google.com, formerly www.writely.com, for a tryout of this technology). Having the functionality of letting many users work together in the physically same document and store the document directy on internet file shares, combined with the power of collaboration enabling teams to collect, share and discuss these documents and information withing workgroups, I believe the use of desktop Office application suites slowly but inevitably will decrease.


@Copyright 2007, Tomas Elfving

Wednesday, April 11, 2007

Web Parts accessibility limitations in MOSS


The support of accessibility (WCAG 1.0) in Web parts on pages in MOSS is limited. Stay with ASP.NET controls and leave the Web parts until your users really need that personalization functionality. When they do you can add personalization support and start using the WebPartZones in MOSS, and accept the accessibility limitation. This article outlines these limitations and discusses some consequences.

The WCAG standard

The W3C standard “Web Content Accessibility Guidelines 1.0 (WCAG 1.0)” ( http://www.w3.org/TR/WCAG10 ) covers a wide range of issues and recommendations for making Web content more accessible. The document contains principles, guidelines, and success criteria that define and explain the requirements for making Web-based information and applications accessible. "Accessible" means usable to a wide range of people with disabilities, including blindness and low vision, deafness and hearing loss, learning difficulties, cognitive limitations, limited movement, speech difficulties, photosensitivity and combinations of these. Following these guidelines will also make your Web content more accessible to the vast majority of users, including older users. It will also enable people to access Web content using many different devices - including a wide variety of assistive technologies.

What is Web Parts?

Web Parts are server-controls (portlets) that can be placed on a web page where the end-user is given the possibility to edit content, appearance and behaviour of the portlet directly from within the web browser. By integrating Web Parts into web pages using WebPartZones and WebPartPages in MOSS, the end-user can also add, remove, move around, maximize and minimize WebPart-portlets. When the end-user make changes to these portlets or pages, the changes can be saved and reused in later browser sessions.

The big advantage with web parts is that it gives the end-user the possibility to personalize the content of a web site dynamically without the involvement of an administrator or a developer. It is also possible to import and export personalized WebPart-settings between different pages and sites. ASP.NET 2.0 has built-in support for WebParts. Basically, WebParts in ASP.NET are common server controls, but with the difference that it has support for personalization through the WebPart-interface. To get the full potential out of Web parts (that is, the personilazation functionality), the Web parts one must put the in a WebPartZone using a WebPartManager store and retrieve personalization data to a database (a MS SQL Server or Sharepoint Server) is also required. One can also put a common ASP.NET server control in a WebPartZone. These control will in that case be wrapped in a GenericWebPart-contol.

Accessibility limitations when using Web Parts

The implementation of WebPartZones in MOSS is hardcoded (unlike the corresponding classes in IBM Websphere. They are just as poorly implemented, but at least open to rewrite as you please) and doesn't support the accessibility guidelines on a number of instances:

  • WebPartZones uses HTML tables for its graphical design whitch breaks the 5.3 guideline in WCAG 1.0.
  • WebPartZones does only support only personalization if You use javascript, which breaks guideline 6.3 in WCAG 1.0.
  • At the time of writing, the rich user interface of Web parts only works with Microsofts own web browsers:
    - WIN IE 6.0 and above

    It doesn’t work very well in the following browsers:
    - WIN Firefox 1.5 and above
    - WIN Opera 9 and above
    - MAC Safari 2.0 and above
    - MAC Firefox 1.5 and above
    - MAC Camino 1.0 and above
    - Linux Firefox 1.5 and above
    - Linux Konqueror 3.4 and above

    This breaks the guideline 6.4 in WCAG 1.0. This means that pages that uses web parts will be hard to use in other browsers other than Internet explorer. The pages will not be adapted to mobile user interfaces and devices used by for instance vision imparired people.

A WebPart can also run outside MOSS and works in this scenario like any other ASP.NET server control. It may not rely on personalized data. I can, however, not see any advantage in developing controls as Web parts instead as web controls unless they are going to be used as personalizable portlets in WebPartZones.

PS. This article partly builds upon the work of Martin Odhelius.


@Copyright 2007, Tomas Elfving