Your website should never rely on Adobe Flash for core functionality.
In the example above, I was looking to get some rates from a company’s website on my iPhone. They have a Flash and non-Flash version of the site, which is nice, but the non-Flash version is not fully operational. (For those who don’t know, Flash does not work on iPhones). I cannot access their rates in that moment, and I lost interest in that company altogether; I went somewhere else.
Flash on the web
The appeal for using this medium in web development is completely understood:
- Hardware/Software – Users will use various combinations of operating systems, web browsers, and media devices to access your content, potentially creating undesired user experiences.
- Overall experience – Flash offers rich levels of user interaction and the overall mood of the experience with a user that can be tough to create otherwise.
Designers want control
Flash does allow the developer to control a number of these issues. Font libraries are embedded into the Flash file. Document width, height, text size, and more can be better controlled to offer a consistent experience over and over again. Also, artistic creativity seems easier to integrate and manipulate at your leisure. I get it.
Clients want results
There are several problems when it comes to the reality of designing and developing a website for a paying customer who just wants their company website to be accessible by everyone. Business owners want a website to increase brand recognition (credibility), offer information, and, ultimately, increase revenue. They want a return on their investment.
Websites should be as universally accessible as possible
The main function of a web page is to deliver information (text and images) to the end-user. That information is usually accessed and rendered by a web browser such as Internet Explorer, Firefox, Chrome, Opera, Safari, Konquerer, etc. Today, a variety of media devices use these and other methods to access the web in different ways. I think many web developers have idealized viewpoints of how users should interact with web content. We all want everyone to run the latest version of Chrome on Windows 7 with a 24″ monitor with Spyder Calibration, and an assortment of professional fonts installed on their machines (you Mac people can play mad libs with that sentence). But the reality is that we cannot control and it is not up to us to determine how anyone interacts with our content; that is the individual’s right to choose. Sometimes, the individual’s rights are jeopardized behind a corporate firewall forcing preselected software from an outdated IT professional. The best we can do is make our content accessible in the most diverse, user-friendly ways possible.
Flash requires a 3rd party plugin
Browsers cannot readily display the contents of a Flash document because the two don’t speak the same language. Users must specifically download and install a 3rd party plugin from Adobe into their browser for it to load.
So what!? Everyone already has Flash installed.
Not true. A lot of people have Flash installed, sure. But not everyone. Now, more than ever, people are very skeptical of installing new things through their browsers for fear of allowing malware. And what about iPhone users? We may not agree with Apple’s decision to deny support for Flash-based applications on the iPhone, but it is a reality developers must deal with. Literally millions of people own and use iPhones each day to browse web content – we cannot ignore this, and you cannot expect your client to accept that these potential customers are not important because of their choice of smartphone.
Content not indexable
Search engines use textual content and semantic markup to index web pages. Text inside a Flash file cannot be interpreted by search engines, and your searchability will suffer.
Where have you been? Google has been enhancing their Flash indexing algorithm for years.
I am well aware of the headless Flash player and Google’s progress with indexing Flash content, and it’s wonderful. But other popular search engines are not as inclined to implement such features. Microsoft supports Silverlight, a direct competitor of Flash, so it will likely not rush to follow Google’s lead.
Everyone uses Google, anyway. Who cares about Bing?
No, everyone does not use Google. A lot of people switch to Google, but Bing is the default search engine in Internet Explorer, which is the default browser on Windows, which is still the most popular operating system on the planet. All it takes is that one business deal to be missed because another business owner used the software that came with his/her computer to search online, and your Flash website didn’t show up in the Bing search results. Explain to your client why that person should have been using Google instead. It’s like selling a car whose tires melt when they touch sand because 78% of drivers stay on the concrete anyway…back to reality. Your client is paying to have their web presence accessible by as many people as possible, not just your ideological sector of technology buffs using the latest and greatest tools.
But I can negative text-indent indexable content off the page and get Flash working with dynamic URLs and “individual pages.”
So you’re going through the trouble of coding content in HTML, then hiding it from view so your site has a chance. Not only is this nonsensical, it creates a disconnect between this and any content being updated in the Flash file itself. Also, Google frowns on this practice.
I update both at the same time.
You’re double working yourself.
I synchronized my hidden content to update automatically with new Flash content.
OK, you’re awesome. You’ve taught a non-web-friendly monster to speak a language that you should have just used in the first place.
Flash does not generate semantic markup
Google still cannot index semantic markup such as heading, title, address, and other tags because Flash does not generate it. I Googled color palette creator to test Adobe Kuler’s results (in case you don’t know, Kuler is a Flash-based color palette generator that I use all the time). I expected it to be in the top for two main reasons: it’s an Adobe subdomain, which lends a bit of clout, and it probably has a ton of backlinks (which it does). The search results are interesting.
- Title and description – Kuler’s result listing lacks a legitimate title and description. I use this information to help me choose which links to click, and this would throw a red flag for me if I didn’t already know what Kuler was before doing the search. In any other scenario, I wouldn’t choose this result.
Keep in mind, this is Adobe, and it still got outranked by much lower ranked sites because Google considered the semantic markup to be more relevant to my search query. The Flash site you’re doing for your local electrician will likely not fair this well.
Difficult to update and manage
A Flash file is a self-contained document and must be updated within the Flash software itself, not standard web development software. It can then be uploaded to the server to replace the previous version of the file.
Flash can be made to dynamically pull files from a directory, which works well for an image gallery.
That’s great, but the images will still not be visible to users without the Flash plugin or using an iPhone. Even if you do manage to build an entirely custom content management system to update your Flash site, it will be difficult to keep up with the large number of powerful open source CMS platforms available.
Flash disrupts the user experience
There are a few smaller things that bug me about Flash.
- Find in page – I use CTRL-F roughly 648 times per day to quickly find and jump to information I’m looking for on a web page; this is pretty much all browsers’ default keyboard shortcut for finding text. You cannot do this in Flash. Even if a Flash developer cleverly integrates search capability into the animation, it will be function differently than the normal expected behavior of the browser’s built-in search feature. You’re also billing your client to reinvent the wheel here.
- Flash can load slowly – Have you ever visited a site and had to wait at a loading screen for an eternity while a progress bar makes its way to 100%? I hate this; I leave immediately. This happens because a Flash animation must be downloaded before the user can view and interact with it. To be fair, HTML pages must be downloaded first as well, but Flash still loads slower than your browser’s native language.
- Text sizes – Browsers and operating systems come with the ability to increase/decrease text to satisfy user’s needs. They cannot control font sizes in a Flash application. The developer can include functions to alleviate this issue, but you are introducing a foreign interface to the user. They have to go out of their way to increase the font size in your application even though they have defaulted their text size in the OS to 125%. Again, reinventing the wheel and annoying the end-user.
- Direct linking to content – As mentioned before, Flash is a self-contained file that runs inside the browser. The browser, however, is completely unaware that you just clicked on a motion graphic that slides out the About Us section, or the portfolio, or the Contact form. No matter what is clicked, the URL in the address bar will remain the same. This makes it difficult to link your friend to the exact “page” of information you want share. I am aware that dynamic URL linking is actually possible, but I have encountered very few Flash sites that actually utilize this.
- Language translation – Chrome natively lets your translate content on a web page to and from various languages; Firefox has add-ons that do the same. I’ve actually used this feature often, especially when learning about WordPress plugins developed by non English speaking contributors. Flash content cannot be read by these utilities and cannot be translated.
Legitimate Flash Usage
Of course, there are certain instances where Flash is the best medium to transmit your data. If you are an animator or game developer, I would almost insist on you having Flash on your site to show off your ActionScript and keyframing abilities. Or you may need to demonstrate how the nervous system sends signals to our muscles to pick up a glass of water. Flash all the way.
Do not use Flash for core functionality