The bottom line right from the very beginning
In large commercial sites for the reasons stated below producing a Flash only version of their website isn't advisable but we and the client want Richer Internet Applications than DHTML and AJAX can reasonably deliver given the present state of javaScript.
The problem is that the timelines and the clients budget is rarely able to support both. So either the end user experience suffers because Flash was removed from the project or the project suffers from some of the problems outlined below.
So that means that the challenge is to make HTML and Flash play nicely together.
How much more does it cost to build Flash apps on top of normal server side development.
What can we do to cut the costs and get more work done in less time?
Flash is a wonderful thing.
Iove it, I work with it but ignoring its failings just isn't sensible.
It enables us to build Rich Internet Applications (RIA's) it brings a level of capabilities to the client which could previously only be dreamt of. Its use however often raises a whole set of issues. I'll try to tackle them in brief in the following list.
Common issues with Flash
1. Browser integration (Bookmarking, fwd, back) and Deep linking
2. Maintenance
3. Accessibility
4. Search Engine Optimization (SEO)
5. The user does not have the Flash plugin and can't download it
1. Browser integration and Deep linking
Problem
If you click the back or forward buttons in the browser while you have a full-page Flash application open you may not get the results you expect. The Flash swf sits in one HTML page and state changes in the Flash application do not trigger page re-freshes. This means that the list of pages that have been visited never gets populated also there are no urls for application states in Flash. This is a problem in the following situations.
• The user clicks the back button expecting the Flash application to go back to the previous page in the form they are filling out and ends up back at google.
• You want you send a link to the product detail page of your web-shop out to your mailing list.
• You save a bookmark expecting and expect it to store a reference to the piece of content you are looking at and all it does when you go back to your book mark all it takes you to is the initial state of the Flash application.
Answer
These issues can be overcome as long as the end user has JavaScript enabled in their browser. significant application state changes can be mapped to url changes which javascript can action. This means that the end user can add bookmarks/favorites and get the results they expect from the back and forward buttons. It also means that deep links can be mapped to a suitable state within an application.
See (http://www.asual.com/swfaddress/)
2. Maintenance
Problem
Many businesses do not have actionScript developers on hand to make changes to a running Flash app. This can make small changes to layouts and simple processes costly. They do tend to find it easier and cheaper to access traditional HTML capable developers.
Answer
There will always be some aspects of a Flash based application which will need the special love care and attention of a skilled actionScript developer or a Flash designer. The same is true of Ajax and DHTML. Complex custom built functionality requires special skills and attention. However there are things we can do to make the maintenance of a Flash app at least as easy to amend and modify as a HTML based project.
Handle layout and styling in XML and build pages from components which can have their data providers set in the XML. Provide a set of behaviors which can be assigned in the declarative XML files. Even some application structure could be handled in this way with some kind of process flow XML or sitemap XML.
3. Accessibility
Flash 8 has some nice features which will help to expose much of the app to a screen reader you could also build in specialized accessibility features into the Flash app such as a large type skin or have Flash its self read the content aloud. The BBC's Flash content is quite compliant and worth a look.
But in general Flash can be a bit tricky to make accessible.
So in most cases the easiest way to ensure that you meet DDA requirements is to provide a backup HTML version of your site which performs all of the business critical functions such as buying products placing orders etc. (event though the functionality will be far clunkier.
4. Search Engine Optimization (SEO)
Flash isn't very good at exposing server generated content to search engines. Even though it isn't quite as impenetrable to searches as some people seem to think. See http://www.google.com/search?q=%22contrary+evidence%22+filetype%3Aswf
So once again the most effective way to solve this is to provide a HTML back up to your Flash site.
5. The user does not have the Flash plugin and can't download it
Sadly lost of people work for companies who see Flash as that thing people use to play games when they should be working or see it as a security risk for some unaccountable reason.
Once again the only way to provide a service to these people is to provide some kind of HTML version.
In large commercial sites for the reasons stated below producing a Flash only version of their website isn't advisable but we and the client want Richer Internet Applications than DHTML and AJAX can reasonably deliver given the present state of javaScript.
The problem is that the timelines and the clients budget is rarely able to support both. So either the end user experience suffers because Flash was removed from the project or the project suffers from some of the problems outlined below.
So that means that the challenge is to make HTML and Flash play nicely together.
How much more does it cost to build Flash apps on top of normal server side development.
What can we do to cut the costs and get more work done in less time?
Flash is a wonderful thing.
Iove it, I work with it but ignoring its failings just isn't sensible.
It enables us to build Rich Internet Applications (RIA's) it brings a level of capabilities to the client which could previously only be dreamt of. Its use however often raises a whole set of issues. I'll try to tackle them in brief in the following list.
Common issues with Flash
1. Browser integration (Bookmarking, fwd, back) and Deep linking
2. Maintenance
3. Accessibility
4. Search Engine Optimization (SEO)
5. The user does not have the Flash plugin and can't download it
1. Browser integration and Deep linking
Problem
If you click the back or forward buttons in the browser while you have a full-page Flash application open you may not get the results you expect. The Flash swf sits in one HTML page and state changes in the Flash application do not trigger page re-freshes. This means that the list of pages that have been visited never gets populated also there are no urls for application states in Flash. This is a problem in the following situations.
• The user clicks the back button expecting the Flash application to go back to the previous page in the form they are filling out and ends up back at google.
• You want you send a link to the product detail page of your web-shop out to your mailing list.
• You save a bookmark expecting and expect it to store a reference to the piece of content you are looking at and all it does when you go back to your book mark all it takes you to is the initial state of the Flash application.
Answer
These issues can be overcome as long as the end user has JavaScript enabled in their browser. significant application state changes can be mapped to url changes which javascript can action. This means that the end user can add bookmarks/favorites and get the results they expect from the back and forward buttons. It also means that deep links can be mapped to a suitable state within an application.
See (http://www.asual.com/swfaddress/)
2. Maintenance
Problem
Many businesses do not have actionScript developers on hand to make changes to a running Flash app. This can make small changes to layouts and simple processes costly. They do tend to find it easier and cheaper to access traditional HTML capable developers.
Answer
There will always be some aspects of a Flash based application which will need the special love care and attention of a skilled actionScript developer or a Flash designer. The same is true of Ajax and DHTML. Complex custom built functionality requires special skills and attention. However there are things we can do to make the maintenance of a Flash app at least as easy to amend and modify as a HTML based project.
Handle layout and styling in XML and build pages from components which can have their data providers set in the XML. Provide a set of behaviors which can be assigned in the declarative XML files. Even some application structure could be handled in this way with some kind of process flow XML or sitemap XML.
3. Accessibility
Flash 8 has some nice features which will help to expose much of the app to a screen reader you could also build in specialized accessibility features into the Flash app such as a large type skin or have Flash its self read the content aloud. The BBC's Flash content is quite compliant and worth a look.
But in general Flash can be a bit tricky to make accessible.
So in most cases the easiest way to ensure that you meet DDA requirements is to provide a backup HTML version of your site which performs all of the business critical functions such as buying products placing orders etc. (event though the functionality will be far clunkier.
4. Search Engine Optimization (SEO)
Flash isn't very good at exposing server generated content to search engines. Even though it isn't quite as impenetrable to searches as some people seem to think. See http://www.google.com/search?q=%22contrary+evidence%22+filetype%3Aswf
So once again the most effective way to solve this is to provide a HTML back up to your Flash site.
5. The user does not have the Flash plugin and can't download it
Sadly lost of people work for companies who see Flash as that thing people use to play games when they should be working or see it as a security risk for some unaccountable reason.
Once again the only way to provide a service to these people is to provide some kind of HTML version.
