Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for December, 2006.

Archive for December, 2006

A great new year to all of you

Sunday, December 31st, 2006

Have a good luck flat rate for the months to come:

Very flat pig

Automatically turning a text into a link

Friday, December 22nd, 2006

While twittering away, Fizzy asked for a solution to link every instance of a word to a certain web site in JavaScript (originally he wanted a CSS solution).

So here is a solution: How to link different words to web sites automatically in JavaScript

Enjoy.

18 Questions for Niqui Merret and Aral Balkan on Flash and Accessibility

Thursday, December 21st, 2006

I was asked by some German friends if I knew something about Flash and Accessibility for a German podcast, and I said yes, but most of it is hearsay and some testing some years ago.

I remembered however the dynamic Flash Duo Aral Balkan and Niqui Merret from BarCamp and other social occassions and offered to take on questions in German, interview them and talk in a podcast about the results.

As I didn’t want to get the amazing answers the two of them gave me go to waste, here is a transcript of the questions and answers with updated info by Aral, who delayed sending me his views until it was too late anyways.

Enjoy!

1) Hi Aral and Niqui. You both are rapidly becoming more known as Flash developers who like to share their knowledge. Give us a quick overview who you are and who you work for.

Niqui:
I grew up in South Africa and currently live in the UK. I started off my career in South Africa working for a computer collage where the whole atmosphere was that of sharing knowledge and learning and I don’t think I will ever leave that attitude behind. The majority of my time working in this industry has been in training and education in some form. I have been an instructor for a range of Macromedia and Adobe products for about 8 years now. Over the years I have been involved in various elearning projects with topics ranging from life skills, HIV/AIDS awareness to basic literacy skills for previously disadvantaged people. What really drives me is the thought that “it� can be better.

I currently run a small development company called HQL in the south of England.

Aral:
Well, I guess my life’s just started (or so I keep consoling myself ever since I turned 30 this year) but my first 30 years in the wombwere spent growing up in Malaysia and living in various countries (Turkey, North Cyprus, US and now, UK) and doing a plethora of things from musical theater and fronting a rock band to video and film production and, of course, multimedia and Flash development.

These days, I run my own company, Ariaware (http://ariaware.com) which has morphed from a development company to a one-man consultancy. My work today spans usability and development process consulting to application architecture and consulting for the Flash Platform and setting up and coaching development teams.

2) What is your favourite aspect of developing web sites?

Niqui:
I mostly enjoy the result, when someone can benefit from my work in some way. Elearning has allowed me the opportunity to reach out to a larger audience and potentially make a difference. I try to work on projects that will benefit people but am not always successful as we sometimes just work to pay the bills!

Aral:
Creating new interactions and experiences for people; bringing people together and allowing them to share in new ways. The Internet gives us an unprecedented opportunity to touch the lives of an incredible number of people in ways that were previously only open to the a handful of the largest media companies.

What is most exciting is that, unlike previous media, the Internet is not one-way but multi-way. It is a living, breathing entity that encourages discourse and interaction. This is the aspect of the Internet that most captures my imagination and it is creating these sorts of interactions that is my favorite aspect of developing web sites.

3) JavaScript has gotten a bad reputation in terms of accessibility but with the advent of Ajax and better JavaScript libraries it got quite a comeback. Flash had the same problem, but seems to get used more now that Flash 8 came out. Can you elaborate what accessibility means in terms of Flash?

Niqui:
Hmm…

There are many ways I could answer this question but I have been able to skip ahead so I know some of my other thoughts can be shared later.

I think that it is great for the Flash world that Ajax and JavaScript are getting the same sort of barriers. Flash got a bad reputation with the skip intros a few years ago and although a lot of Flash developers are now building sophisticated applications in Flash (and Flex), the perception has not changed. It is important to understand that Flash was originally designed as an animation tool. Flash developers have pushed it along the way so as to create applications and sites beyond what Flash was designed for.

I find there are prejudices towards Flash that are outdated. There is a lack of understanding of the potential of Flash to cater for a variety of different users with different needs. Sometimes people hate Flash because they have always done so and need to be educated in the benefits that it can bring people.

Back to the question – What does accessibility mean in terms of Flash? I would say it means the same as for any other technology. It’s a case of discovering what works for different users and developing with the relevant users in mind.

Aral:
Accessibility is a very loaded term and is used to mean a lot of things today; there are quite a few, often conflicting definitions of what accessibility is and what it should be.

There is, for example, a school of thought that posits that every web site and web applications should be accessible to everyone (what is known as “universal accessibility”.) Another viewpoint is that sites should clearly define their target audience, set minimum requirements and be accessible within those limits.

There appears to be the classic struggle between theoretical purity and practical solutions. (The parallel I see is the stance of the Free Software movement versus that of the Open Source movement; personally, I favor pragmatism over pure academic theory but both are necessary and critical debate upon these matters, as long as it remains open, can only benefit our field.) With regards to the question, then, the definition of accessibility in Flash is no different to the definition you favor for accessibility in general.

The more important question, in my view, would be: “What is the current opinion of the state of accessibility on the Flash Platform and what is this opinion based on?” The answer to which would be that the general consensus, at least outside of the Flash community, is that Flash and accessibility are mutually exclusive and that if you care about accessibility you will not use Flash. Unfortunately, this widely-held notion is based on historical information and current misinformation.

Personally, I blame this on a lack of dialogue and understanding between the insular islands that are Flash and Web Standards communities. It seems that both tribes moved to different islands many years ago and still base their ideas of each other on what their history books tell them without taking into consideration that both sides have moved on and made progress in key areas.

Many in the Flash world still believe that writing HTML, JavaScript and CSS is fraught with the same level of browser incompatibilities that existed in the days of the first browser wars and most in the web standards community still believe that Flash is primarily a vector animation tool that is used to create annoying banner ads and skip intros. Neither of notions are true today and we are doing ourselves a disservice by holding on to them. I believe that it is in the interest of both communities that we engage each other and update our preconceptions of each other.

4) What are the changes to Flash 8 that allow developers to createaccessible applications? Is it a science on its own to create them or is it possible for less experienced Flash developers to create them? Is there any kind of automisation?

Niqui
I am not a fan of automisation. It is essential that you test with real users and you can’t truly automate a user experience.

The key to building usable, accessible applications is an understanding of the users. This knowledge can then be applied in what ever way a developer can. It is not a weird science and should not be a specialist field. Taking care to add in a logical tab order and using the correct method to insert a SWF into an HTML page are two very simple techniques that can be implemented by anyone of any skills set. We need to encourage all developers to add in the basic steps and that will already make the world of difference.

Aral:
Firstly I need to clarify an important point: the Flash Platform has grown quite considerably in the past few years. It now contains quite a few technologies and tools. Flash 8, the Flash IDE, is one of those tools.

There are also open source tools for creating flash content (which you can find out more about on the Open Source Flash web site, OSFlash.org, which I coordinate) as well as a whole new framework (Flex) and tools for working with it (like the Eclipse-based Flex Builder tool.) I mention these to make the point that the various tools can expose the accessibility options in the Flash Platform in various ways but, ultimately, the accessibility features are built into the Flash runtime (more commonly known as the Flash Player) and are always available to the user through ActionScript.

With that out of the way, let me address your question. The main tool in Flash 8, or the Flash IDE, for making accessible applications is the Accessibility panel. Using this panel, you can add alternate text to any element in a Flash movie to expose it to a screen reader. Beyond this, you can also detect whether a screen reader is present and whether it is currently being used and alter your presentation layer in response to this.

One of the limitations in our debate on accessibility today is that the scope of discussion usually doesn’t stray far from screen reader support. Although screen reader support is very important, it is only one disability out of a range of existing ones and it should be the end all be all of our consideration on this topic.

Niqui has been very vocal about this point and she presented the gamut of disabilities and how you can address the issues surround them in her excellent presentation recently at Flash on the Beach. I personally hope she will be releasing her slides from the conference soon as they will no doubt provide a very important reference in an area that is sorely lacking guidance at this point in time.

5) Is ActionScript a necessity to achieve accessibility?

Niqui:
It depends on the level of accessibility that you are going for, what the application is and who your target audience is. I would love all sites to be totally accessible for everyone but this is not always a feasible solution due to the time, budget, target audience and lifespan of the site.

Most people who work in Flash do a small amount of ActionScript. If you use the accessibility panel to add the options for screenreaders and the tab index you are already on the way to a more usable and accessible site. The next and possibly most important step would be to use UFO or SWFObject to embed your Flash into an HTML page. Both of these can be found on osflash.org and are very easy to use.

You can add in more advanced options with actionscript to make the users experience better. Some of the features would be stop/start motion and sounds. Adding in colour filters to set the contrast.

Aral:
No, it is perfectly possible to create an accessible Flash site without using ActionScript. There are certain things (like detecting the existence of a screen reader) that you have to use ActionScript for.

6) Aral, you show a pretty impressive Flash application on your site. Using a few lines of ActionScript you make the whole app resize if the user resizes the font. Is it possible to resize the whole Stage, or is this limited to an instance?

Aral:
The application you’re referring to was born out of an example that Niqui created in her blog post titled Text-Resize in the browser sets the scale of SWF. In it, she provided a very simple and elegant solution to a common accessibility problem in Flash. Namely, that Flash files (SWFs) do not react when the user sets the text size option in their browser.

So, for example, if a site has a mixture of HTML and SWF content and the user increases the size of the text on the page, by default only the HTML text will grow larger (unless the developer has used fixed font sizes, in which case I believe there is a new law that says we’re allowed to shoot them!) :P

Niqui’s solution was to create a very simple way to make the SWF react to text size changes in the browser without requiring developers to change their Flash files. This is great because the simpler something is, the more chance it will have of being used. Especially in the so-called “real world” where accessibility budgets are usually non-existent and deadlines are summarized with the word “yesterday”, it is exceedingly important to make it as easy as possible for developers to add accessibility features to their sites.

Tools play a large part in this and I know that Niqui is currently working on a project of her own to help raise the bar in terms of educating and empowering developers in creating accessible Flash content easily.

To return to the question, however, the example on my site is an evolution of Niqui’s original idea. It is useful in cases where the Flash developer wants finer grained control over how to layout their movie or application when the text scale changes in the browser. It allows developers to listen for that event and react to it by changing the layout of their applications. They may, for example, want to raise the font size without scaling an image in the movie. Also, it aims to fix some issues with Flash inconsistently capturing the keyboard shortcut for text size changes on some browsers.

[ed: Both ideas were based on an Alistapart article by Lawrence Carvalho and me]

7) Can Flash interact with screenreaders? If so, how?

Niqui:
Yes. Accessibility support for screenreaders is turned on in Flash by default so that supported screen readers can access the content. There is now an accessibility panel in which a developer can add titles and expose or hide elements like buttons and text to screenreaders. Flash can detect if a Microsoft Active Accessibility (MSAA) client is active on the users computer and if the computer has the capabilities of communication between Flash and assistive technology. This has actually been the case since Flash 6. The current supported screenreaders are Window Eyes from GW Micro, JAWS from Freedom Scientific, Home Page Reader from IBM and ZoomText from Ai Squared. Unfortunately they are limited to Windows with IE. I have yet to hear feedback on support for Apple’s Voice Over and any other screenreaders on the market.

The issue that users who rely on screenreaders face is if they were used to the technique of searching for the relevant information. They would probably find it quite difficult to use a Flash site to access content that they are looking for. Flash is a poor choice for a textual information based sites.

Aral:
I believe Niqui’s answered this question quite fully! :)

8) Given a fair amount of effort, you can switch to a high contrast version of a page. Are there any other tricks to use to increase accessibility?

Niqui:
I have been looking at making a toolbar that will allow a user to apply different filters to a Flash site. With all the bitmap filters and effects that are available you can really do so much and have it apply over the whole Flash movie. I would not actually say that it is too difficult to do these effects in Flash.

Simple tricks to increase accessibility would quite simply be to set the tab order, use the accessibility panel, check your colours are suitable for colourblind users, the over all site has enough contrast and please don’t use a font size below 11. Adding in control for animations and sounds would help users who having issues with focus.

Aral:
I know that Niqui is working on a solution to reduce the effort in this area. In fact, I believe they will be working together with Chris to provide a solution that works on both the HTML and SWF content in a page.

9) What kind of web sites are preferable to make accessible?

Niqui
Is it more about sites that have a lot of content or is it also applicable and preferable to multimedia flash sites like the ones car manufacturers show off with? Niqui: I think that it really boils down to understanding your users. All sites should be accessible in some way. I don’t think it is possible to have a user base that does not contain at least some kind of disabled users.

A target user for a Mercedes may potentially have poor on screen reading and could possibly be colourblind. If any information is given in colour or if the text is too small the site will not be usable for them.

A target user for an online music store might be blind. If the site contains too much music that plays at the same time as the screen reader is accessing the site then it may be impossible for the user to find any information on the site.

Aral:
It does really come down to understanding your audience and their needs. Unfortunately, today, disabled users aren’t always seen as an audience. What I mean by this is that accessibility today is in the “checkbox accessibility” stage: We are aware that there is a requirement (even a legal one) to make sites accessible but our current solution involves having guidelines consisting of checkboxes that you can tick to ensure compliance. You can even automate this process and have a script that checks your website to see if it fits a given set of guidelines. To see if it is compliant. So you can have a script that decides whether a certain audience of humans will be able to use your site. Of course, a script cannot make this judgement, only humans can and only with testing. I’m not saying that checkbox accessibility is bad, just that it is not enough. You can (and should) do certain things to ensure a certain baseline of accessibility.

Checkbox accessibility, guidelines and standards and compliance are very important in ensuring this. As is the work that Niqui is doing as it will help educate and empower developers to give them the tools and knowledge they need to reach this base line. But this is not a substitute for user testing.

I advocate what I call the usability approach to accessibility. In trying to make usable web sites, the opinions and knowledge of usability testers are important but they are not a substitute for actual user testing. The same holds true in trying to make web sites accessible. In this case you have several different audiences, each with their own set of needs that you actually have to design and test for separately.

Within the usability approach to accessibility, each supported disability represents a different audience. In fact, non-disabled users become just another audience; the audience that we usually design and test with for usability. So, in this approach, to create truly accessible (which, in this case, I define as “usable by a disabled person”) web site, you need to design for test for each supported disability.

The needs of a hearing-impaired user are different from those of someone with a visual disability or a learning disability. In fact, an example that Niqui gave recently demonstrates this perfectly: You may raise the contrast of text on a page to support users with visual impairments but end up making the site unusable for someone with dyslexia as it has too much contrast.

The only way to support various disabilities and to create meaningful online experiences for your audience is to adopt a usability approach to accessibility and design for and test with multiple disabled audiences. And that requires an investment of budget. Of course, the very mention of the word “budget” is enough to send most companies scampering. Investing in accessibility, however, is not without its returns. It is unfortunate that we have to prove a return on investment on accessibility but in the profit-driven marketplace that we live in, it is sometimes the only way to get through to the bean counters.

The said bean counters can take solace in the fact that there is a staggering number of people who live with disabilities and that they collectively control an equally staggering dollar vote. Again, I’ll refer you to Niqui’s Flash on the Beach presentation for exact figures but, suffice to say, there is real business sense in making your sites accessible. So, if you’re not going to do it because it’s the right thing to do, do it for your bottom line. Regardless, disabled users benefit and that’s what I really care about, not the exact nature of your motives.

10) A lot of people consider SEO and accessibility the same thing as properly structurred HTML web sites are easy to index. This is not the case when it comes to Flash. Do you recommend an alternative HTML page for SEO?

Niqui:
It is not always important or relevant for a site to be SEO but I have seen cases where it is used as an excuse to a client to get an HTML version to make it more accessible. I am not an expert in SEO so would be reluctant to comment too much on this.

I am a little disappointed that people put SEO in the same category as accessibility. Accessibility is about human rights not about increasing your ranking in search engines.

Aral:
There are various ways in which you can optimize Flash web sites and applications for search engines. Providing an alternative HTML page (which can be generated automatically by your application’s back end) is one way. Others include making use of RSS and deep linking in Flash. Something as fundamental as how you embed the Flash movie on your web site will have an impact on SEO. In fact, you should definitely read Geoff Stearn’s blog post on A modern approach to Flash SEO- flash-seo/ for an in-depth review of that subject.

11) Can pure Flash applications ever be as accessible as HTML solutions?

Niqui:
Yes. They can be more. They also can be less.

It depends on your target users. If you have a selection of users who can’t read large amounts of text or any text then they would benefit more from a visual experience than a textual experience. This could be the case with users ranging from disabled users, young people, old people, illiterate people and even people who speak a different language.

Sites like youtube are able to hit larger international audiences, as they don’t rely too much on reading text. What are the users there for? Flash video.

Aral:
Yes, they can. In fact, they can be even more accessible than HTML solutions, especially Ajax solutions as Flash provides features beyond those found in HTML/Ajax for accessibility. As I mentioned earlier, you can, for example, detect the presence of a screen reader and present your content accordingly. In fact, Jeremy Keith and I created a tool called FlashAid to expose this functionality from Flash to JavaScript to enable Ajax to do the same thing. So there’s an example of Flash exposing some of its own functionality to Ajax in an effort to make Ajax more accessible. As I was saying previously, the opinions of Flash that are held in certain communities are definitely quite outdated and need an overhaul.

12) Is HTML still needed, except for the embedding of the main movie, now that Flash is accessible?

Niqui:
All technology has its use. I would say that there is always gonna be a large call for HTML sites. I would never consider using Flash for my Blog as an example. I love Flash for its strengths (visual media, animation, video etc) but would never choose to use Flash for the sake of using Flash. My company site (www.hqlondon.net) is mostly HTML & CSS with my gallery in Flash. I think it is a problem when people choose to use certain technology that is not the best for the job because that it what they know. Aral: Of course! The important thing is to know the correct technology to use for a given task. If you’re going to be displaying lots of text (in other words, if your site is more document than application), then HTML and Ajax makes perfect sense. If your site is more application than document, Flash starts becoming a better option. For some things, you have to use Flash (for example video) since an HTML equivalent doesn’t exist. I like how Jeremy presented this at Flash on the Beach: I’m paraphrasing here but it was along the lines of “if you reach the point where using progressive enhancement in Ajax—see Hijax)—becomes unfeasible, you should be using Flash”.

13) Are there any other problems you can see in terms of accessibility of web sites?

Niqui:
Not sure what you mean by this question. The biggest problem is the lack of caring and understanding that lies within the companies and developers that has resulted in there being so few accessible sites.

Aral:
The biggest problem I see is that we are currently at the point in the accessibility debate where checkbox accessibility has the limelight and we have not yet matured to the point of understanding and implementing a usability approach to accessibility. I’m fairly confident that we will. As I’ve written at length about this earlier, I won’t go into any more detail on it here! :)

14) HTML and CSS can be easily debugged and tested with extensions for Firefox, like the web developer toolbar. Is there something similar for Flash?

Niqui:
Those tools only perform automated tests and should not be treated as a replacement for user testing.

But to answer your question some of the debugging that you are talking about has to do with layout and issues that occur across browser. Flash does not have nearly as much of an issue with cross browser, as it is a plug in and supposed to work the same across all platforms. Flash has a built in debugger but if you are not a fan of this (and I am not) you will find quite a few options available on osflash.org. It is a great resource for open source tools to develop Flash applications.

Aral
There is a debugger in the Flash IDE but, quite frankly, it’s crap. John Grden has a great tool called X-Ray that is very useful and the new Flex Builder tool has a wonderful Eclipse-based debugger.

15) What do you consider reasons to make Flash applications accessible?

Niqui:
I think if the content is relevant to a user base than it should be accessible to them.

If the content is essential to users like legal information or government information then it is essential that it is accessible to everyone no matter what the disability is. This is a matter of basic human rights.

If the sites content is in no way essential for a user to access like a tire promotional site then is it really essential for everyone to be able to access it? In an ideal world maybe but we need to be realistic about what is relevant to the users and cost effective for companies. Aral The same reasons as there are to make any other content accessible.

16) Do you know any Flash web sites that are exceptionally accessible?

Niqui:
Now that is a hard one for me to answer. I can only take peoples word for it as I have not tested with the users. The other problem is that not enough developers are creating accessible solutions in Flash or making it known.

The most publicised site at the moment is – http://www.jkrowling.com/ Most of my accessible work has been elearning projects that I can’t show. I am working on a sample site at the moment. I would be interested in seeing more accessible Flash sites so if you have any suggestions…

Aral:
One topical example is the Christmas Game by Nomensa. It uses self- voicing and the keys 1-9 to create an accessible Flash game involving elves and snow balls (always a good combination!) Self-voicing is one of those things isn’t feasible in HTML but which you can do easily in Flash. Of course, it’s important to consider potential conflicts with screen readers when using self-voicing.

17) Where can a novice Flash developer learn about Flash accessibility? Do you know of any books or good online resources?

Niqui:
There is very little online with regards to making Flash accessible. Adobe has started to put up some resources and information on their site that should help a developer start. http://www.adobe.com/accessibility/. It is quite focused on the American laws and guidelines so it is important to find out information that is relevant to your country. It is a pity that it has to be like that but the Web standards don’t really include Flash into the specifications. There is a white paper available that covers the starting points to making Flash more accessible.

Aral:
Apart from the resources Niqui posted, there is, of course, Niqui’s blog (http://niquimerret.com) and you will find the stray chapter in an accessibility book (like the friends of ED one, which is basically a re-publish of the Macromedia paper on the subject). I concede that we definitely need more resources on the subject. Niqui’s latest project should go a long way to filling this gap and I can’t wait to see it.

18) What is your wishlist for web 3.0? Is Flash going to be a major player in the future?

Niqui:
I’m still on a wish list for the current version… I think we have a lot to work on as a web community to get to the next version. I would like to see developers accept other technologies and work together to create a better space. If we work together and encourage new developers to take a better path instead of attacking them for taking a wrong path we will be a bit closer to a better web. I am glad to say that there does seem to be a lot more acceptance of Flash in the community than there was before. I think Aral has done a lot towards opening up the barriers and fighting the prejudice.

Aral:
Flash is most definitely is reaching its prime as the Internet matures into an application platform. I think we will be seeing Flash (and Flex) make new types of applications possible on the web and raise the bar on the types of experiences that can be created online yet again. In fact, with the introduction of Apollo, I see the Flash Platform as a factor that could seriously diminishing the relevance of the operating system by enabling wide-spread availability of cross- platform, sometimes-connected applications. The lines between the desktop and the Internet are blurring and Flash is in the ideal position to take advantage of this.

New Podcast on WebdevRadio

Wednesday, December 20th, 2006

Michael Kimsal of WebdevRadio asked me about an hour about almost everything I have done to write Beginnning JavaScript with DOM Scripting and Ajax and the YUI.

You can check the podcast on WebdevRadio and if I sound tired then it is because we had to do the interview twice as the first time around Michael’s equipment gave up.

Topics Covered:

  • [tag]JavasScript[/tag]
  • [tag]Progressive Enhancement[/tag]
  • [tag]Distributed Development[/tag]
  • [tag]CSS[/tag]
  • [tag]CSS behavior problems[/tag]
  • Working together as designers, web developers and engineers
  • [tag]Firebug[/tag]
  • [tag]Yahoo ext[/tag]
  • [tag]YUI[/tag]
  • Edward Eliot’s automatic JavaScript merging script

Podcast by Proxy

Tuesday, December 19th, 2006

Earlier tonight (before we ended up with free drinks and a Chinese meal in Chinatown) I recorded a podcast for the German site Technikwürze which was a podcast with a twist.

Instead of being interested in what I had to say (be fair – who would?) the maintainers wanted to have some expert information about Flash and accessibility, and I translated and sent the questions the podcast maintainers had to Niqui Merret and Aral Balkan.

Taking this knowledge I tried to convey what their ideas (and boy they are great ideas) in German and was aided by one of the highlights of the German accessibility world Tomas Caspers who had a lot more to say about the implications of Flash on screenreaders and other assistive technology than I could ever muster.

It certainly was the weirdest conference I had done in while and if you speak German it might be a fun thing to listen to.

Technikwürze also published the answers of Niqui to my questions in English, so it’ll be worth while visiting the site anyways.