Nathan J Pledger

Program.X musings from the Isle of Man concerning ASP.NET, in particular accessibility, web standards and neat ideas.

Flash - My view on best practice

A conversation I had with a designer friend today where he asked me what I thought about Flash web sites got me thinking.

Flash content might be "flash", but it is not necessarily useful, functional or usable. I'm not a great fan of Flash, but I can see it's value to the web. It provides attractive, fluent and dynamic sites and designs that have a level of interaction that is difficult to duplicate in a conventional web-site - even when using techniques such as JavaScript and, increasingly, AJAX.

Users who visit a Flash site may experience a number of effects of the Flash content that can disrupt a positive web experience, which often reduces the benefits of using Flash in the first place. When visiting a Flash site with a system or browser that does not have Flash installed, a pop-up, yellow bar or a simple failed portion of the page will be displayed. This can be frustrating, because before I can enjoy the quick-satisfaction I love about the web, I have to wait for a number of minutes while I download and install the Flash applet. This is, of course, only done once so it's annoying once per browser. I remember I recently had to help someone who was having problems with using a web site that used Flash. His browser was experiencing a HAL-9000 style internal conflict. It wanted to install the applet, but his security suite which had integrated itself into his system didn't like it so much, so caused extra confirmation windows which, quite simple, can be quite scary if you're not sure what you're doing.

Once the Flash applet has been downloaded and installed, we then have to wait for the Flash content to load. Well designed Flash content is, of course, loaded asynchronously often with attractive progress bars. Others, just make you wait. But why should I wait? I often have to go to sites and have to watch a progress bar making it's away across the site, and these are big sites - one key site is Sony Ericsson's product catalogue at http://www.sonyericsson.com/cws/products/mobilephones?cc=gb&lc=en. It even comes up with "There's a lot to load, but it's worth the wait". Well actually, it isn't. I struggle to wait for them to bring out decent and reliable phones - I don't want to add waiting for the most important page on their site to load too. If you haven't got Flash, maybe they think you're not worth the effort? Luckily my Nokia has got Flash, but I won't be browsing their site with it.

When the Flash applet has loaded, we're often presented with a beautifully designed and thought through experience. Immediate feedback is provided on mouse interaction with screen elements. Animation is smooth and can be beautifully subtle. A well designed Flash web site is a joy to use - if you're able to fully utilise and benefit from a web experience. Users who require accessibility features such as alternatives to mouse control, larger text, different colour schemes or spoken content all too often lose their experience at this point. No matter how many times they change their browser settings to affect the stylesheet, the text size or control method, the Flash applet will often sit and ignore their wishes. A real shame, because the effort that goes into a Flash applet is not insignificant and requires a paradigm shift in terms of programming. Additionally, even "able" users can struggle to shift their method of interaction to a Flash applet. For instance, I was at a corporate partner's web-site today and I was navigating their site struggling to find some content. I went on a page that was not relevant and instinctively went for the "Back" button - possibly the biggest button on most browser toolbars. I ended back at my Google search, quite frustrating as I then had to navigate back to where I was (after I had waited for the "web site" to load again).

The support of Flash is subject to a large extent to Adobe's opinion and support of a particular platform. The PC and Mac will enjoy Flash players for the forseeable future - but what about the increasing number of alternative browsers? Television browsing is growing fast - often via a games console connected to the internet. Also growing fast is mobile browsing. I am lucky that my new Nokia N95 phone supports Flash, but other phones may not. Other phones would need more memory, a better CPU and this can have a big impact on battery life. If Adobe does not believe a particular platform will "work" (which may even be down to licensing or political reasons, luckily, not something Adobe seems prone to yet), no matter the technical qualities of the device, they can choose not to implement a Flash player. Would you like to put your web-site into their hands and have them choose who can and cannot access your site?

Finally, there are the inevitable security concerns and the obligations that come with them that are passed on to you, the user. We're now at Flash 9. More features are being added each time and this will only provide greater opportunity for bugs and potential security vulnerabilities. We struggle to make sure that our operating system and browser is "patched up" already, now we have to worry about various applets inside the browser. Granted, this is usually an automatic process, but it is using my time to download and install, my bandwidth allocation which may be capped and places the responsibility on me to make sure it is up to date.

Then there are the servers. I always say Google is the most stupid, deaf, dumb and blind user that will use your site - but you want it to use it regularly. Search engines such as Google cannot use a Flash applet. Even when the "Googleplex" achieves sentient status, it will struggle to effectively index and understand a Flash applet and the content it contains in a structured and useful way suitable for indexing. When a search engine goes to your Flash site, it often sees very little. For heaven's sake, make sure that you at least include a decent <TITLE> tag and effective <META> data.

So how can you use Flash effectively?

I'm not interested in being negative for negativity's sake regarding Flash content. Flash content has it's place, and it can often create a very positive user experience, if implemented with consideration to users and search engines. I have come up with the following guidelines I like to keep in mind when people ask me about Flash.

What is Flash good at?

Recently, we've been playing with streaming high-quality video streams using as little bandwidth as possible for as cheap as possible. There are few products that can truly achieve this and have such a wide user-base as Flash. Windows Media Player is on virtually all PCs thanks to it's integration with Windows (except in Europe, of course!) but this often draws resentment from users, particularly Mac users who often need special software to view the same content. By the same token, Quicktime is available on Macs (although they realistically represent no risk to the true business user market) but PC users may resent (and I do) the repeated attempts by Apple to install iTunes and now Safari along with it. Having a "Go Pro" message everytime you close the application is also frustrating. Finally, there is Real Player, a wild thing that has little respect for your wider use of your PC. It aggressively tries to take control of all your media, constantly wants you to "register" for content and support (read "spam"), places tray icons that have no benefit to users and has effectively turned into bloat-ware. Flash, on the other hand, can handle very efficiently compressed video that can be secured and made available to users no matter what platform they may be using. It is no accident that YouTube use Flash for their video player. While no content on the web is truly secure, I was interested to learn that you can adopt some cute practices to seal up Flash video content - at least to the amateur.

Flash is good at marketing. Marketing channels such as banners were often animated GIF's which were slow to load, animated jerkily and were unattractive due to their 256-colour palette. Now, Flash is used regularly and - if well implemented - can provide a positive user experience. The silly and pointless Flash adverts that you find on sites like Facebook aside, a Flash applet can entice users in by presenting simple games, video's (the IBM ones are very popular, good ol' Gill) and elegantly designed animations. If I see a Flash video ad, I usually play it.

Flash is also great for games. So many hours have been spent playing silly, pointless but highly addictive games built in Flash. These games are great as a viral marketing tool, too. Kids love them, they're safe and they're highly interactive thanks to their ability to utilise the multimedia features of a PC.

Never wrap content up only within a Flash applet

You wouldn't keep your key web site content behind a username/password protected page, preventing your users and customers from accessing it so you shouldn't put such content only within a Flash applet. Users who cannot use Flash must be able to access the same information or functionality. Sure, it may not be as snazzy or beautiful, but some people don't have time, security-privileges to install Flash or just aren't that superficial. I'm a meat and guts person, myself. Flashy graphics has no effect on me, if I can't get at what I want, I'm off.

In providing this alternative content, you can choose to do it in two ways. You can check for Flash on the browser in some JavaScript and fail-over to static HTML if Flash isn't available, or you can present either content and ask the user to choose. But don't do a "Flash or HTML?"-style page, this has no benefit to search engines and requires an extra click for the user to access their content. A perfect solution, for me, is to try and load the Flash version and then load a small portion of the Flash content along with an option to choose the static version. This maintains a quick and attractive user experience, even if the user opts for the static version as they've not been made to wait for the full applet to load.

Flash works really well when it complements your content

Consider my hosting company's site: www.hostinguk.net. The Flash applet along the top is being used for what it is good at: creating an attractive and vibrant promotion mechanism that is central to the user's eye-line. I visit their site regularly, and this applet is used to convey latest marketing and products that are being implemented and gets my attention every time. But after a few seconds absorbing the simple content conveyed through the promotion channel, my eyes fall to the text - I want detail and there's nothing like text for providing it.

So in this case, the Flash content is complementing the site content. It is being used as a vibrant, attractive and sleek channel for conveying a marketing message but if you can't see it, you don't miss out. Additionally, it is small, so it loads fast. Search engines will ignore the Flash and attack the text on the same page, which will drive users to the page and who will see the attractive Flash applet and from that, their initial momentary impression of their browsing experience will decide whether they're likely to stick around and maybe make a purchase.

 

A client has recently told me that I had lost out on the development of a charity's web site to a Flash web site developer. This infuriates me, as, at the end of the day, they will end up with an attractive site but which would be difficult to find - and certainly next to impossible to find and jump straight in to the context which I want. Flash developers might not have realised it yet, but when you search in search engines, they tend to take you to the content you're after - not the first page and have you find your way through the navigation to the content - which is what a Flash site forces you to do.

In conclusion, we must also visit Silverlight, Microsoft's competitor product. Silverlight offers much the same as Flash does now, or will do in a production capacity when v2 is eventually released. Silverlight offers the developer a lot more features than it offers the user, in all honesty. It's another component that has to be installed in increasingly bloated browsers. From a user's point of view, I struggle to see any benefits. The benefits are entirely for developers, particularly those with a .NET background. The Silverlight platform has one key difference, however. It uses Javascript for it's control mechanism, and holds it's data behind web services and XML files as XAML. While not entirely useful for a search engine, at least it is something. Again, I would never advise implementing a site or part of a site entirely within Silverlight, particularly when it is such a fledgling product. It has a long way to go and while Microsoft may have a link on every page of their site, it's going to take more than that to encourage users to install it - particularly as it's use has actually slowed down key Microsoft sites such as their Download Site.

Leave a Comment

(required) 

(required) 

(optional)

(required) 


Please add 2 and 8 and type the answer here: