Can the site built entirely in Flash be still SEO-friendly and visible in search engines? [closed] - html

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
My website will be basically selling services; will my SEO ranking still be affected if I embed the Flash site in a blank html page? I am at that critical point where I am ready to upload the site but I am just having second thoughts about the ease of doing business with Flash.

Ignoring the SEO implications of an all-Flash site, unless you're building games, or I have an extremely strong desire to buy what you're selling, I will turn back immediately if I find a website built entirely out of Flash.
Nothing against your programming skill; I just have rarely seen such a site give me what I want. The name is often apropos.

Search engine crawlers can't crawl flash sites, so your SEO rankings will be based off the non-flash part (the blank html page). Personally, I also don't really like the user experience of a flash-only site.

Google and Yahoo! have added flash crawling functionality to their engines recently.
http://www.adobe.com/devnet/flashplayer/articles/swf_searchability.html
From a SEO perspective you're fine on that front. Still..your page will need a DOC TYPE, Page Title, etc to remain SEO compliant.
IF your target market is users browsing your site from a laptop or desktop you should be fine. You may want to include a flash-free option for users accessing your site on a mobile phone or with javascript/flash disabled.
For example, You can run a browser sniffer to redirect any user agents accessing the page on Safari via an iPhone OS.
Other than that Flash does offer some nice flair to a site. If you can give alternatives to users that don't like the application then I say do it.

It can certainly be done well. I've seen some pretty cool Flash-powered stuff being run by some pretty big-name companies, do a search for HP's Photosmart page for instance.
Look: there's a lot of information out there about Flash and SEO, and much of it is out of date. Google rolled out "official" flash support about a year ago, and they've been refining it ever since. Google will index your Flash site, but exactly what gets indexed is a bit of a black box so it always helps to have HTML alt-copy.
Never, ever build a full-flash website without using SWFObject for embeds and always try to use SWFAddress to enable Flash Deep-linking. There are ways to make this work and work well - a lot of people don't know that and have a deep-seated hatred of all things Flash because they were irritated by Splash pages in 2002. There's nothing to be done about them.
But if you want to use Flash, go for it - just do a lot of homework and test your work.

Whether or not it's business suicide depends on how much of your revenue is dependent on getting referrals from search engines. Your search engine ranking will certainly be affected if you have an HTML page in which you simply embed some flash.
Could you implement an alternative more static site, by scraping the main content from your flash?

all web applications should be made from the point of view of accessibility, no matter what the scripting language used at the time. If you use a nice script like SWFObject then you can populate your page with "alternative content" to the flash page which the search engines will crawl. this will also allow any browser that doesnt have flash to have a look at the website, even if you dont make the whole thing as "pretty" in HTML.
two birds as they say.

I don't know whether you've considered this or not, or whether it applies to your circumstances, but you might lose out on business from the visually impaired. Unless I'm mistaken, I don't think there are any screen readers that operate on Flash.

I think it depends on what kind of business we are talking about.
For most, I would say don't do it!
But there are ome kinds of sites where I think it is appropriate, if done very well. For example if you are in the business of art or design, or are showcasing a product/service where art or design is key.
As an example:
Volkswagon's GTI Project (a large part of what cars are about is design)

Flash has fallen out of favour the last few years with a lot of people. Initially it was because search engines didn't crawl it but these days it's mainly because 'flashy' effects can be done with javascript engines like jquery, scriptaculous or mootools.
Having said that I can tell you that nearly every business customer I go to still wants flash on their site and most casual web users don't give two hoots what a site is built like as long as it works, is fast (something kinda tricky to do with flash) and is what they want to look at.
I say go for it and see how the site does! I'm sure if you use analytics for a few weeks you will know whether your site is doing well or not.
Best of luck with it :)

For some reason Motorola made their new Droid site all in Flash.
This is a good article about how dreadful it is, and the drawbacks:
newmedia article
There are a ton of good reasons to use Flash sparingly. It's good for what it does well and dreadful for entire sites.

Ok so first of all, perspective, my primary domain is Flash and system architecture, I and the company that I work for at present are all about creating online 'digital experiences', engaging online content.
This is NOT applicable to selling services, e-commerce, and general information based sites, as much as it pains me to say that. There is current a massive backlash against flash due to the arrival of javascript effects and the canvas tag, I'm going to be bold here and say that anyone who thinks they can replace x years of plugin development and and media experience by giving html/javascript devs a div they can draw into are simply misguided (and you can show me all the chrome experiments you want but its still not going to be pixel bender or native 3D support).
So with that said, in this climate you've got to play to each formats strengths, you want slick, stylised SEO'd content that is accessible and concise, html with progressively enhanced javascript is a no brainer. You want a web app that people can use easily, search and build a micro-community around then googles GWT (other js frameworks are available) is the way to go. For everything in-between and beyond theres Flash.
I'm not giving Flash a kicking (it's my lively-hood after all), far from it, in fact I'm actively encouraging people to use Flash only for the kind a digital master-pieces it was made for, if you can do it in HTML, why would you do it in Flash? Sure in most cases it actually works out lighter than JS, and it's cross-browser compatible, but these are small issues that will only be ironed out in time, HTML was designed for the web, Flash was designed as a plugin.
In coming years we will see Flash on a multitude of devices with the open-screen project and the iphone-flash cross compiling, it is becoming a platform for multimedia development in general, where-as the web is becoming more service orientated platform, web apps running off searchable indexed content in the cloud. If your website is intended for the web, then make it for the web.
(Just realised that this was a bit of a rant, apologies)

If you created a web site with Flash, user will not be able to use basic browser functions and extensions such as searching, spell checking, sharing a particular page via Twitter, etc.... (And cannot access from iPhone.)

Depends on the site in question. If its just displaying marketing collateral or case-studies then a "flashy display" would be fine. Have seen couple of such websites in the past and the better ones have impressed me.
You should also consider how frequently content would change and how it impacts your design in Flash vs say design in html. The search engine ranking aspect also will matter.

You won't get any business from me.
Nothing says 'amateur' on the web like pointless Flash.

Related

Website Update Tool for a Non-Programmer

I work with my professor to implement web-based decision support tools. I am a seasoned programmer, and am at ease with the various web technologies we use. However, my professor isn't, and he usually has to rely upon me to do even the most basic tasks like adding publications and presentations to an existing list. However, he now wants to be able to do these basic tasks by himself since we both feel it will be more efficient that way, and to leave the hard-core tool implementation for me.
He suggested that we purchase Dreamweaver to achieve this. However, I do not have much experience with Dreamweaver since I prefer to work with bare HTML, CSS etc., and Emacs and Eclipse have filled these needs very well for me.
What do you think we should do? Do you think Dreamweaver will be a good tool for this? If not, is there something else we should look at? How far will he be able to get along without knowing much HTML? Do you think I should give him a crash course in HTML? Feel free to opine!
NOTE: The website is not based on any CMS; it is completely bred in-house. We use HTML, CSS, PHP, and JavaScript. However, my professor will most likely dealing only with HTML (no CSS etc.)
For these types, I often (while cringing) reach for WordPress.
If your customers can make a Facebook post, they can edit content in WordPress. Just stay on top of the updates for it, as exploits for WordPress are found with very high frequency. Even with this maintenance, it will still be easier than doing updates for them.
It shouldn't be too hard to convert your site over to a template that you can use within WordPress. If you can't, you can easily embed content from WordPress into your site via feeds, but there is a performance penalty for this.
If you build the site with Dreamweaver, Adobe Contribute is a good option that is pretty much WYSIWYG (what you see is what you get), and it is designed to work with Dreamweaver templates.
Basically, it helps prevent novices from screwing up the site too badly by locking users out of template areas (the areas that are supposed to stay the same from page to page, such as navigation).

Choosing a technology... why not Flash?

I want to make a site from scratch, and Im considering to use Flex to make a R.I.A instead of the standard approach (xhtml + css + some ajax).
The kind of site I want to make is something like e-bay, but less complicated.
But.. I know that 95%+ of the sites like that are built in the previous mentioned techs... so, what are the cons and pros if I want to make a pure Flex site?
Thx.
If you write an entire website in Flash, the entire website lives at one URL. (Short of mucking around with whatever Flash provides to let you offer deeper links.)
Whereas a website written in HTML, unless you go mad with your AJAX, lets people link to the stuff they’re actually interested in, like unicorns:
http://cgi.ebay.co.uk/DESPICABLE-ME-AGNES-Unicorn-Doll-Plush-Character-Doll-/180602861597?pt=LH_DefaultDomain_0&hash=item2a0cc4f81d#ht_1755wt_907
Or for a non-eBay example, Stack Overflow questions:
Flash for business web applications - why not?
HTML also has a pretty standard and understood user interface: links, and form controls. (Mainly links.)
Flash doesn't work on iPhone/iPad. End of story.
Other reasons: not a web standard, often quite slow, not good for SEO, etc.
It requires users to have a proprietary plugin which some users don't want and other users can't have (since isn't available for all platforms (iOS being a key example)).
It also has performance and stability issues on some platforms (OS X and Linux being prime candidates).
While some search engines have started to index Flash content (so long as it exposes the information), the results aren't as good as for content rich HTML sites.
You can do that simply using traditional xhtml + css + jQuery (or any JS framework if you want to increase UX). Flex won't do much in your scenario.
In my experience, performance is not a real issue unless you play video - one can write bad programs in JavaScript, too...
Your pros are mostly on the development side: You can have a great looking site quickly, and you can almost completely forget about browser incompatibilites.
You rely on the customers having the plugin installed, though, and you rely on Adobe's technology for development and playing of the content.
If this is not important to you, and you can afford to do without all iPhone and iPad users, accessibility and standards compliance... go for it!
Flex is good if you want to install as an application using Air. ebay actually has a RIA version, or at least they did for a while.
There are several concerns with a Flash site, some of which Adobe has addressed in the last couple of years.
One is accessibility. It is more difficult to make a Flash site accessible to the visually impaired, who use screenreaders.
Related, people like to be able to copy and paste content, as well as print. With standard web pages, the developer need do nothing to support this, it just works from the browser. With Flash, you'll have to take care to make your text content selectable, and I'm not sure a user could ever select a section of text + images. I've never done it, but I can only imagine that implementing printing ability in your Flash site would be nightmarish, at best.
Another is linking and addressability. For most sites, you can copy or at least get a link that you can share or save to get back to where you want to be. With Flash, you usually go to a single address and then the rest of of your experience happens inside the Flash "window" and the browser isn't actually navigating any pages. It is far more difficult to implement this ability in a Flash site.
A Flash site is usually very slow to load, especially the first time, and page load times are immeasurably important to a site's success.
Finally, you've perhaps heard the furor over the last couple of years about different vendors supporting or not supporting Flash in their products/devices. An all-flash site would be completely inaccessible on any iPhone or iPad, for example, which do not support Flash at all. Furthermore, some employers do not allow plugins like Flash to be installed on work machines, so you'd eliminate that portion of possible traffic, as well.
Nobody has yet mentioned Silverlight.?
I mostly agree with Jay's answer concerning accessibility, but as a further note would like to add that development in Flex/Flash vs HTML/CSS/JS could be more costly not only in terms of money but also for maintenance. Many Flex/Flash devs typically charge a higher price and their dev tools, which are necessary for compilation, usually aren't free, compared to HTML/CSS/JS devs, who often use freely available text editors.

How can I convince a client that audio on a website is a bad idea? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have a client that wants audio to play while the user is browsing the website. Besides the fact that audio is annoying when it starts automatically and plays when you are browsing, I thought of the following technical struggles.
Having to use frames to allow audio to play uninterrupted.
SEO issues with using frames
Having to use ajax to allow audio to play uninterrupted.
SEO issues with all ajax site
Pop-up to allow audio to play in another window
JS pop-up blockers won't allow this
Does anyone else have other technical hurdles that I can use in my defense?
Music on your website is a terrible idea
All who are against music vote for this answer
All who are for music vote for the other answer
It doesn't matter what you or s/he thinks. All that matters is how the customer reacts.
Easy way: see if they'll agree to asking 10 random strangers (who are representative of the visitors you get) and playing music in the background (you can just mock this up) and abiding by their opinion.
Hard way:
If the client won't agree to #1, try the one below (and once they realize #1 costs $30 and #2 costs $300 to do they'll then opt for #1)
How about some objective metrics with an A/B split test: Randomly assign half the visitors to hear music, the other half not to. Then compare conversion rates (or abandonment rates).
Losing customers in the effort to prove a point isn't going to win any brownie points with the client, so I would avoid putting music on without the ability to turn it off. Furthermore, you risk frustrating your user base by defaulting the music to on/loud.
However, in this scenario, you will probably find that most people never turn on the music because they don't realise it's there.
You could ask your users what they prefer the first time they load the page up:
Do you mind if we play music during
your visit to our site?
Sure, go ahead, I love music
Actually, I'd rather you didn't
[X]Never ask me this again
You'll likely find that most of the users say no, and they'll appreciate you not harassing them on every visit to your site. Likewise, those that want to listen to the music can appreciate it without your whole user base being irritated by it.
If the client is unwilling to see how bad of an idea that playing music can be, try to meet in the middle. Maybe add a music player options so users can choose to toggle between on or off. That's the best attempt and what my strategy would be.
Hmm, this is a tough issue because there really is no clear, definitive answer. I like to look at issues like this:
Technical:
If a client wants a feature (in this case sound) perform the due diligence to research if browsers can support that feature, and which ones will not. Come up with numbers to show the client. X feature is only supported in X browser and most people use "this" browser so I would / wouldn't use this feature.
Psychological:
Specifically for sound, study the psychological effects, usability of this feature as it concerns the end user. I will immediacy leave a website if a video or sound starts playing without my permission. I expect a choice, and when that choice is taken away I leave. And at the point where I leave, I'm mad, I hate any user experience where I am left out.
Client is not always right:
So most of us have heard that the client is ALWAYS right. Well to be quite honest, no no they are not ALWAYS right. It does not matter whether your selling websites, or magazines, or working on cars, you have to be there for your client. Obviously if you do good work people will refer you. However sometimes you have to stand your ground with a client. My suggestion is to make sure you do that at the beggining of a project, rather than later. I've turned down projects, or agreed to handle only certain aspects of a site design because I wouldn't be associated with certain features. For example I don't do Flash sites. Not that flash is bad I just don't do it. I give those projects to friends. And they return the favor. If you tell a client upfront that you won't / can't deliver that's a good thing. Don't say yes and then come up with an excusse later in the project, that's where the client will become frustrated with you, and if they complain they are right to do so, and you will loose business.
At the end of the day communication, deciding upfront what you will and will not do will save your lots of headaches.
And as for sound, it has it's time and place. Bands, Flashsites especially those highend national ad campaings for cell phones, or movies can get away with sound. The best option at the beginning of a project is to tell (don't ask) the client that they can have sound, and if it does auto play you will set he volume to low, and have a visable player that the user can control, meaning they can TURN IT OFF, OR LOWER THE VOLUME, these features are not negotiable. If they have a hard time with that, then walk away from the project because they will have a hard time with anything. And don't be afraid to turn down work. For every 3 sites I work on I turn down one.
I recently took on a project that requires sound. I'm kinda in a pickle with my client (he's not mad) but he told me he wanted sound and I offered to use a player, and give control to the end user. He was ok with that. Recently, after checking out the sound player feature he says "No, I wanted a sound to play when you rollover the navigation. The pickle is that he never said that, and I've stood my ground with him about adding that feature. So he's a little upset with me, but we are working it out. He's mostly upset that I want to charge for the extra feature, and I'm not budging. It will all work it. Just an example.
Sorry for the long reply, Good luck!
If someone is viewing your client's web site at work, the music could cause them to click away immediately. That's what happens when audio starts playing on a site I'm browsing at work.
I had this issue with a client. I solved it by doing an Ajax site, but in order to workaround SEO downfalls of Ajax, all the navigation links literally linked to another page. Search engines saw a completely normal site, where navigation links were normal and only the content paragraphs for that one page were loaded in the HTML.
The JavaScript then progressively enhances the page by overriding the link behavior to load the content for the new page. So users with JavaScript got a great Ajax experience, with audio, and only the content div loaded new content.
You can even get around back/forward button issues by marking #pagename in the URL for each page. Upon page load you should check to see if a #pagename is there, and then load the content for that page.
Hope that's clear enough - let me know if you need more details.
See if you can figure out why, from your client's perspective, they want this feature. See if they can give you good reasons. Then you can begin seeing how to meet their goals without necessarily using their methods.
That might help with convincing them, as opposed to resorting to technical concerns. Going technical makes it sound like you don't want to do your job. That's not the case at all -- I'm sure you want their site to be awesome and you will do what it takes to make that happen. It's just that "what it takes" may not be exactly what the client asked for the first time.
There is nothing like a practical demonstration. Find a suitably annoying midi file and loop it endlessly. If the client can stay in the same room for 30 minutes without their head exploding then they have won the right to put music on the site.
Obligatory XKCD.
Myspace
The business stakeholders do not care about your technical worries. So I advice you not to waste time telling them or seek more input.
The business stakeholders do care about money- and that is the major reason why you were hired and a "currency" you can use to "talk" to them. Explain to them things like:
How adding audio can reduce an ability for customers to stumble upon their site via a Google or bing search (SEO)
How audio can be disruptive and make them more likely to go to the competition (which is only a click or two away) (this is your pop-up issues)
The current state of technology and users' expectation will not make this site pretty and give a poor return of investments (Ajax problem you mentioned)
Notice each of these focus on the button-line (profit-$$$) and does not bore the business stakeholders with technical details which is not their problem (but yours.) Speak to them in their language, be frank and realistic and these guys can be wonderful. A demo of an extremely bad site can help if you feel that it helps your cause (but be careful because this can also hurt you.)
Nothing you've listed is a reason to avoid playing audio on their website.
To you and I (and many others I suppose), auto audio is really annoying.
My suggestion is that you explain your feeling to your client.
If your client still insists on having audio, then do what they want. The client is your customer, and the customer is always right.
As an aside, many photographers I know have audio, and while many poo-poo this, they all swear that their clients love it. So I guess to each their own.
Put it on the website and wait for complaints to come in.
Store designs, notes, and specs for client's approval on your own web site. Add music to these pages. Make sure it's music he doesn't like.
This comes down to one of the primary rules of usability: do what the user expects.
The only way I'd consider putting auto-playing music on a website is if it's for a band website with an integrated Flash music player. The reason is simply that the user will expect it. Any other time it's just annoying.
Another point - many users open many tabs/windows at once, so if music starts playing, you don't actually know which site is doing it, which is intensely annoying!
I might cite a precedent to make my case. Identify their space or niche on the internet. Look at other site owners who are very successful in the customer's space. Do they play music? Is it working for them?
Suggest against it, because most internet users actively dislike it. Make a comparison to the blink tags of ten years ago, which also made sites seem less professional to the larger audience.
And if they still want it, do it, because it'll make them happy, and happy customers with terrible work beats unhappy customers with the Best Site Ever. Just leave the site out of any portfolio of your work you put together.
Or, as the genius above already added, add a toggle for music on/off.
Every time you call the client, blare music in the background and say you just opened some website that started playing it automatically.

Why should I not use HTML frames? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I haven't used frames since 1998. They seem like a bad idea and in all my development I've never had a situation where frames were the right solution, or even a decent solution.
However, I'm now working with an internal web application written by another group and the entire site is built in a - header, left side menu, right side content - frameset.
For one, when VPN'd to my network I constantly get a "website.com/frames.html" cannot be found." error message. This doesn't happen when I'm on the internal network.
Second, the app has a built in email/messaging system. The number of unread messages is shown in the left side menu frame as "Messages (3)" but the count doesn't update as I read the messages. The developer told me since it was in a frame I needed to right click on the menu and 'Refresh'. Seriously????
So, my programming related question is, what reasons do you have for not using frames in a website?
Although they solved a problem at the time they were created (updating part of a "page" while keeping in place a non-updating part), framesets were criticised in terms of usability pretty much from the start, as they break generic functions of the browser, such as:
bookmarking, and copy-and-pasting URLs to share
printing the page as displayed on the screen
reloading the page: since the URL has generally not changed, you will often be taken back to the site's homepage or default frameset; manually reloading some frames is possible, but not obvious to the user
back and forward buttons are ambiguous: undo/redo the last frame change, or take you to the last time the URL bar changed?
The heaviest burden of avoiding framesets - including the same content on every page - is trivial to solve if you are using any server-side language to generate your HTML, even if all it provides is a "server side include". Unlike framesets, a server-side include could occur anywhere on the page; building a site with a server-side scripting language or templating system has other obvious advantages too.
There is still an advantage to being able to update small areas of the page without reloading the entire content, which can be achieved via AJAX. This sometimes leads people to create interfaces with all the problems of framesets outlined above, but that is hardly an argument in favour of framesets. Again, a site built with well-designed AJAX functionality can achieve things which framesets don't even begin to address.
One good reason to avoid frames today is they have been deprecated in HTML 5: Chapter 11 Obsolete features
11.2 Non-conforming features
Elements in the following list are entirely obsolete, and must not be
used by authors:
[...]
frame
frameset
noframes
Either use iframe and CSS instead, or use server-side includes to
generate complete pages with the various invariant parts merged in.
The #1 reason? Users hate them.
Even if they offered advantages in other areas (separation of code, application design, speed etc) they are part of the user interface. If users don't approve, don't use them.
Frames were vaguely useful when you had a static web site, to avoid repeating navigation menu in all pages, for example. It also reduced the overall size of a page.
Both these arguments are obsolete now: sites don't hesitate to serve fat pages, and most of them are dynamically built so including such navigational parts (or status, etc.) has no problem.
The "why" part is well answered above, partly by your own question (you hit a limitation, although it can be overridden with a bit of JS).
My number 1 reason not to use frames is because they break the bookmark (aka favorite) feature of browsers.
With the technology that exists today, frames have become obsolete. But if your legacy project still uses them, you can make the messages update with some ajax.
Just because of the cell phone iPad craze doesn't mean that highly functional full featured sites are suddenly "obsolete", and those who decided to make framesets obsolete seem to be the same complainers who never figured out their full potential in the first place, or maybe they're the lobbyists of the mega-corporate cell-phone and tablet makers who couldn't be bothered to make a decent frames capable browser for their itty-bitty screens.
Admittedly, iFrames can handle simple jobs like scrolling and/or displaying independent segments within a single page pretty well, and I use them for that inside my own frames based website, but to get them to work as well as the foundation for a site itself is a nightmare. Trust me, I know because my website is one of the most sophisticated frameset based sites on the Internet and I've been looking at the pros and cons of transposing it all to iFrames. Nightmare is an understatement.
I can already hear the whiners saying, "Well why did you build it that way in the first place then?" ... and the answer is A: Because I'm not lazy. and B: Because a frames based site is the most functional, visually appealing, and user friendly format for an information based site with hundreds of pages of content that doesn't have to rely on a server. By that I mean all but the external advertising can be viewed straight off a flash drive. No MySQL or PHP needed.
Here's some of the issues I've encountered:
The objection to orphaned pages can be easily handled with JavaScript.
The objection regarding bookmarking is irrelevant unless you use no frames all.
Content specific bookmarking can be handled with an "Add Bookmark" JavaScript function
The objection regarding SEO is easily handled by an XML sitemap and JavaScript.
Laying out dynamically sized frames is far easier and more dependable with standard framesets.
Targeting and replacing nested framesets from an external frame is easier with standard framesets.
In-house scripts like JavaScript searches and non-server dependent shopping carts that are too complex for cookies don't seem possible with iFrames, or if they are, it's way more hassle to get them working than using standard frames.
All that being said, I like the single page appeal of iFrames, and when they can actually do all the same stuff for my site as easily as standard frames does now, then I'll migrate. In the meantime, this nonsense about them being "obsolete" is as irksome as the other so-called "upgrades" they've foisted on us over the years without thinking it all the way through.
So what does all this boil down to for the question of whether or not to use framesets? The answer is that it all depends on what you want your site to do and on what platform it will mostly be viewed on. At some point it becomes impractical to make a multi-page site work well without some frames or iFrame integration. However if you're just creating a basic profile page that displays well on a cell phone or tablet, don't bother with framesets.
They almost always make people angry. What more do you need?
Frames are really useful in some occasions. If you are creating a local webpage that serves only for reading, no interactivity involved and the website will not be public on the internet, all the reasons on not to use frames are removed. For example a user manual for an application that is developed solely in html, frames are really useful in keeping a table of contents on the left in a simple and easy to code way. Also if you have proper navigation within the website then the back button ambiguity is removed completely

What is so evil about a Flash based website?

I have the feeling that Flash-based ( or Silverlight-based) websites are generally frowned upon, except when you are creating games or multimedia-content rich applications. Why this is so?
Flash is infamous for its poor accessibility.
Keyboard navigation does not usually work, and Flash (up until recently) did not have search engine support.
Flash applications does not work in mobile phones and other portable devices.
Flash is not there in the iPhone!!!
Flash is controlled by a single company (Adobe) and so it is not following any well defined standards for the Internet.
The beauty of Internet lies in the fact that you can always view the source code of any website you are in. This way you can use the same programming/design techniques in your website or you can find security flaws in the web application. This is not possible in Flash. In Flash, source code is closed.
The big question is, why should you use Flash "except when you are creating games or multimedia-content rich applications"?
jtyost2 says,
"I would also add that you can't directly link to any content inside of a Flash site, thus breaking one of the major factors that makes the Internet, the Internet, links."
content weight
usability
crawlability of search engine bots
accessibility
ease of use (disputable)
technology encumbrance (added software required to access the site)
security issues (needing to add software comes with issues involved with installing or running that software/player of the content)
[Edit] Why I place usability and ease of use separate is best explained in this link
Usability:
a result – software that is usable;
a process, also called user-centered design, for creating usable software;
a set of techniques, such as contextual observation and usability
testing, used to achieve that result;
or
a philosophy of designing to meet user needs?
Ease of use:
Effective
Efficient
Engaging
Error Tolerant
Easy to Learn
I agree with the comments on that site, but this is all debatable...could be a good stackoverflow question: is usability and ease of use the same? IMO part of usability is ease of use and vice versa, but they are not necessarily the same.
I hope I don't enfuriate the more semantical sensitive with this edit :-)
Interestingly everyone here blasts Flash/Silverlight and you would do well to recognise that this is only one side of the coin.
Flash (and Flex) allow web site designers significantly more flexibility and richer content for their site and this works in a variety of situations - e.g. sites relating to movies, or bands, sites for kids, sites for games etc.
Certainly, there are many reasons to not choose Flash/Flex/Silverlight, but one can do sites just as inaccessible in JavaScript these days. I have previously worked with JavaScript products that have no reasonable usability by blind people, or web crawlers.
Flash penetration (from a biased source to be sure) is 99%+ (http://www.adobe.com/products/player_census/flashplayer/version_penetration.html), which means that those that say "would never visit a Flash site" are in the 1% of the population that do no install Flash, do not watch YouTube or movie trailers online.
So, you need to be mindful of your audience. Certain audiences and situations would definitely be better off with plain HTML pages and a minimum of JavaScript (government websites, programming websites are two areas that spring to mind). Other times it is because the audience are office workers that are not allowed to install Flash in the browsers.
Rich Internet Applications (RIA) is one area where there is a distinct clash/struggle between the Flex/Silverlight and JavaScript/CSS/HTML sides. I've worked with both, and I'm now of the opinion that requiring Flex/Silverlight plug-ins is fairly reasonable, though you can still lose some visitors if the application is public.
In summary - you're best to identify your audience, identify what they're willing/able to use and then based on such limitations decide on your technology.
Flash and Silverlight based sites typically go against basic Internet conventions with their closed models.
For example, most Flash & Silverlight based sites:
Ignore the back/fwd button.
Don't allow you to send anyone a URL to a specific place on the site, or bookmark a specific spot for later via your browser
Place the internet in a fixed size box. No dynamic sizing for wider monitors or higher resolutions.
"I was about to click checkout but I wanted to change something so I hit the back button"
In this next rant s/Flash/Flash or Silverlight/g
The Flash application/plugin is a closed source pot of serious undisclosed security holes that expose private data, allow modification of arbitrary files on your hard disk, etc.
Flash files are enormous for basic content. There are more efficient ways of doing things
Flash is slow. The plugin on my Windows PC can hog 100% of the CPU time to play some shitty websites.
Flash is non-standard. There isn't a supported flash plugin installed everywhere. Linux users can't run it without jumping through package management hoops. Firefox users on Windows don't get it by default (well didn't last I checked).
Flash is annoying; your users don't want to be bombarded by animations and jingles and junk just to get some basic information.
No back/forward functions unless the Flash designer wanted to implement them in
Can't view a single page without waiting for all the content/scripts that make up that "page" to load. That's really quite painful if all your user wants is a slice of text and you force the multimedia down their throat.
Most Flash-only sites are really bad; the designers seem more concerned with using all of the features of the flash engine rather than presenting something that's concise and useful to the user.
I am a Flash developer. The firm I work for has no difficulty finding clients who want us to build Flash-based products for them. There is a certain set of applications which it is much easier to develop in Flash than in other environments I have used.
But Flash has its problems. Some above have complained that Flash apps do not include keyboard support. Others say it is because the developers are too lazy to implement it. The truth is that many of the components that come standard with Flash are buggy. At my firm we have had to write our own replacements. One feature that is problematic is keyboard support. I implemented my own support for keyboard interaction. It works well, but required effort. If I were writing a Windows VB app, the keyboard navigation would be provided and would work well out of the box.
The same is true for deep-linking, back-button support, etc. A clever developer will be able to make a Flash app behave well. Some open source libraries are indispensable here.
As for flowing layouts, I just completed a proof-of-concept for this (in AS3) as well. It is possible, but requires much effort. Why do I make the effort? Because of the other things that Flash does well.
My biggest gripe with Flash is that it takes you "out of the browser" into its own totally separate application. This breaks "browser standards" - i.e. the functions I can do in my browser:
Right click
Middle click (for opening links in other tabs)
Selecting text
Copy & paste
Printing
Keyboard shortcuts (since Flash steals keyboard focus)
Back/Forward buttons and the whole "page" concept
Javascript interaction with other elements on the page (I don't think this is possible).
"Inspect element" in Firebug or Chrome, if I wanted to see the source of a particular part of the Flash file, or find the image being used.
Flash has its uses. It's good for content, not webpages.
Printing is often poorly supported and the backbutton does not work.
I think it's a matter of selecting the lowest cost medium to reach your target audience,
be it Flash or Silverlight or JavaScript or plain text.
You can have text-only, JavaScript-only, etc. versions of your site if you have the
money, and your target audience come with different prioritizes.
So my question to you would be: does your website has people who frown on Flash as its target audience? If yes, you need to stay away from it. If not, use anything to give your
visitors a good experience.
SEO is the prime issue. Still Flash is not crawlable. But Adobe is working on it.http://www.adobe.com/devnet/flashplayer/articles/swf_searchability.html for better swf indexing.
Does anybody know a site called YouTube? It wouldn't exist without flash. Flash has great video/multimedia capabilities that simply cannot be ignored.
Flash is amazing when used in the proper way, in appropriate circumstances and when the designer/coder has taken care to embed basic accessibility features.
The thing is, like all good things, there's a lot of abusive use (flashturbation). Especially in the beginning, when people just want to slap Flash wherever they can just to show off.
But I strongly disagree that Flash sites are bad: When made properly, and with good UI design and accessibility, they bring a whole new dimension to the web.
See Steve Jobs' Thoughts on Flash: http://www.apple.com/hotnews/thoughts-on-flash/
Let us not forget that Flash allows web sites to display video, animation, user interaction, etc., and it allows this to be a simple process or a geeky techie one, depending on what you want to do. Many bad Flash sites are down to the author.
If YOU don't like Flash then the answer is simple, don't use it. Don't install the Flash plug-in, or install a browser plug-in such as Flashblock on Firefox. This replaces any Flash movie with a play button, preventing and download until it is clicked.
Better than that though, if you don't like the solution that Adobe or Microsoft are giving you, then come up with a better one, or at least let them know what you don't like, they do take feedback seriously. Support some of the people who campaign for accessibility improvements in Flash, for example visit http://niquimerret.com.
Accessibility is an ongoing issue and not one that will go away, Flash accessibility is improving for people with physical disabilities. In in some cases the use of Flash enhances the experience for people with cognitive and learning disabilities, when an concept or idea is better explained when presented as an animation rather than a page of words and static images.
Flash adds another heavyweight component that's required to properly view a web page. The flash plugins are often buggy and can crash a browser. Flash pages often are used to make cutesy animations and other things that make it harder to quickly navigate a site.
All of the above is true for the wild wild web.
However, for internal business applications, Flash and Silverlight allow the user to have something close to a fully-fledged application in their browser. Accessibility, SEO, and closed source are not very important in an internal application. All that matters is making the user's life easier.
I dislike Flash based websites because what happens if your browser crash or your connection dies for a bit? You have to load it again and go back to the menu, and select the item you wanted to read about, and so on and so forth.
Just don't do it. :S
I don't install Flash on my browsers, mainly to escape the nuisance of animated ads, but also for all the security and privacy reasons mentioned by others.
So sites done completely in Flash are nonexistent as far as I'm concerned. (W.r.t. Youtube, I download videos directly into Miro.)
Probably for the same reason C programmers shied away from Win32 API, Win32 programmers from MFC and MFC programmers from Windows Forms. It's tricky to use and understand - I have tried programming in Flex and am getting along pretty well but it is not inherently designed for typical web application design e.g. there is no native (at least until Flex 3) support for databases or cookies or sessions - you need to put all 3 in PHP or another server-side page and call that from ActionScript.
Try making a simple register/login page with PHP and then again with Flex/Flash and you will see that all the server side crunching is done by someone else - again, this is probably by design since we have HTML/JavaScript for the front-end mixed with ColdFusion or PHP etc. for back-end in "traditional" web applications.
Like started by other people, Flash is bad with the keyboard - try pressing Ctrl-T in Firefox when a Flash object embedded in an HTML page has focus (mouse-over) - so that can be frustrating for the user...
Having said all that, I would still rather make a web application front-end in Flash/Flex than HTML/JavaScript/CSS since the latter needs a sharp learning curve that gets quite bewildering after a while since you have to account for the "good" design aspects of CSS and JavaScript and the bad ones too - and also the peccadilloes that JavaScript/CSS inherently have and those which are introduced by the JavaScript library vendor (Yahoo's YUI, Google's Ajax API, script.aculo.us, etc.
If you are already a web programmer who knows CSS/HTML/JavaScript very well and have a good development environment set up on your PC with all required code inspectors and runtime debuggers etc. etc. then it's easy to keep on working in that (not taking into account end-user preferences) but if you are like me and want to make a web application ready and available for use quickly and want to add features to it quickly while making it pretty all the time, then Flash/Flex is a better option, IMHO.
I am a Flash developer.. and I have found that although Flash requires more effort in coding, the potential is enormous. You can create very simple sites with simple transitions, so subtle it would seem to be a normal HTML page, while still being just as light.
At the same time, you can use OOP with ActionScript to create a website that is as complex and as inclusive, as well as feels and acts like a desktop application. WHILE ALSO REMAINING VERY LIGHT! (only the content required is loaded on demand, as apposed to 4 column HTML sites with far too much information.)
Nowadays, and this is still without migrating to ActionScript 3, but still using ActionScript 2, MY flash files contain simply 2 or 3 lines of ActionScript, only one frame, and an empty stage. Everything else is dynamically created or added at runtime.
Flash's problems are not about Flash, but about lazy development.
In its defence, most of the issues raised here about how people have implemented Flash in their websites, not about Flash itself. Flash does support accessibility it's just that most people don't consider it when building their sites. Flash does work on mobile phones - it's Flash Lite, although the ActionScript is limited in earlier versions.
Why should anyone have an automatic right to view the source code of a website?
A web author has spent time and effort dreaming up their code to share their ideas through the medium of the web. If you want to know how something works, why not put a bit of effort in yourself, and work it out? The beauty of the web is the message, not the medium.
So what if Flash is owned by a single company - Adobe bought it for a reason, and that's because it's a fantastic bit of kit. The problem comes from web authors not using it properly, trying to make it do things it was never intended to, or simply not applying standards to their sites when developing using Flash.
What is so evil about a Flash based website? Absolutely nothing.
It's like asking what is so evil about a gun. Nothing. It's the idiot wielding it that has the problem.
Flash sucks and I refuse to visit Flash-based web sites. Why? Because I can't. Why? Because Adobe is too ignorant to write a plugin for a 64-bit browser.
Look at any major car maker's website, they are ALL in Flash. It depends on what you are doing. If your goal is to provide a rich, sexy website Flash/Silverlight will give you a huge advantage in terms of development time. IF you are providing content/data HTML and JavaScript (jQuery for example) can give you a lot of whizbang without requiring additional software plug-ins (Flash/Silverlight).
Flash Player is the culprit behind more Mac OS X crashes than anything else. It's not exactly well-known for its stability.
All the above answers are focusing on Flash, Silverlight is just as bad or worse. If you are running Firefox with NoScript (you should be) then you have to click on every script that you wish to allow to run.
So build your websites with scripts, Flash and Silverlight. Just make sure that they still work with them disabled. Many of us will simply move on when we open a site and see nothing.
Many of us have had bad experiences with Flash based websites which has propagated the idea that flash is "evil". I don't really think it's fair to apply the label of evil to any technology or framework, they are each designed to cater to specific scenarios and many of them do well in those scenarios, for example, I have no problem with websites that use flash video.
A few other responses have touched on the fact that the use of flash contradicts many of the standard metaphors we use on the internet (e.g. links and navigation buttons), I hate this as much as the next web user but this doesn't really make flash evil either.
While it has been said that there are mechanisms within Flash/Flex to add support for these things, in my experience these are rarely implemented, which is not directly the fault of Flash per se, but is very annoying for the user.
Perhaps the evil is not Flash/Flex but Adobe for not making many of these things easier or more visible to developers.
For the record I have never developed in Flash
Flash isn't evil, it's what people do with it that's evil.
For goofy vector animations and maybe even for example a 360 product view or interactive diagram, yes. Flash can do beautiful Full HD animation on my ancient box # 60 fps using ~15 % cpu.
For web video, if you have no other choice, I suppose.
But for entire websites and these things called 'RIA's, no.
So shockingly a technology works better for the thing that it was designed to do.
Flash is one more stuff to learn in web development. No thanks!
There are just too many already. If I can do my job without it, I don't need it.
Programming is being paid less every day.