Friday, October 26, 2007

Flash Accessibility - Section 508 DDA

Flash and Accessibility - Not the best combination

Flash is really not the choice for accessability, and you will most likely find a lot of visually impared people will be more frustrated with Flash. If you choose flash and javascript, know that you will be restricting the visually impared user to Jaws/Window Eyes (Screen Reader), MS Windows, and Internet Explorer.

As an example, work is currently underway to make Macromedia's Flash technology accessible to people who use screen-reading software. While some positive progress has been made, it will be a considerable time before most users will benefit, and even then, Flash may be accessible only in certain specific circumstances. It is certainly wrong for web designers to assume that improvements in the accessibility of a technology mean that it can be used indiscriminately without regard for the principles of accessible web design.

Mouse-only interactions
Do not use interactive elements within your Flash movie that require the use of the mouse. The most common of these are drag-and-drop and double click. There is no keyboard alternative for either of these events. Flash elements, such as scroll bars and sliders, must include functionality that allows them to be used via a keyboard.

Do not require fine motor skills in order to navigate the movie. Do not move buttons that the user may want to select and make sure that navigation items are of a sufficient size. Because of the visual nature of the Flash authoring environment, it is almost entirely inaccessible to both screen reader and keyboard users. Although menu items, panels, and drawing tools are exposed to screen readers and can be accessed via the keyboard, it is impossible to use the tools to add elements to the Flash stage without using a mouse.

Finally, screen reader users will need to access Macromedia Flash content using the Microsoft Internet Explorer browser. This is the only browser with support for MSAA.

All accessible Flash content must be tested on the Microsoft Windows platform. While there have been recent improvements to the Apple Macintosh OS 10.4 release (Tiger), including a built in screen reader called VoiceOver, the Flash Player does not support this screen reader. All accessible Flash content must be tested using Microsoft Internet Explorer. At the time of publishing this document, Internet Explorer was still the only accessible browser available. The Mozilla Project has made some improvements with the Firefox Browser, and support for screen readers will soon be available. However, the version of the Flash Player that runs in Firefox is not yet accessible.

That is because the Adobe approach to accessibility is windows centric. I found that reading the Adobe product (flash & PDF) chapters in Web Accessibility: Web Standards and Regulatory Compliance. For example, Flash only talks to Microsoft Active Accessibility (MSAA) through IE. The Adobe view is that visually impaired people will only use one of five screen readers on a Windows box using IE.

There is a demo version of JAWS available which runs for 20 minutes before you need to restart your OS, great for Parallels or VPC users.

The Adobe definitive list of screen readers (ie ones that work with flash/PDFS) are: GW Micro Window Eyes 4.2 or later, Freedom Scientific JAWS 4.5, 6.1 or later, IBM Home Page Reader 3.04, Dolphin HAL 6.50, KDS PC Talker (Japan), Browsealoud.

Make Flash simpler for:
Hearing disabilities
Provide synchronized captions for any audio that conveys content

Photo epilepsy
Remove strobing content that flashes between 2 and 55 times per second

Motor disabilities
Ensure the Flash content is keyboard accessible
Do not require fine motor skills

Cognitive disabilities
Give users control over time sensitive content Provide easy to use controls and navigation schemes Be consistent Use the clearest, simplest language appropriate to the content

Low vision
Provide plenty of contrast. Allow the Flash content to scale to a larger size. Because Flash is based on vector objects (mathematically defined lines and shapes) rather than raster (pixels of differing colors) technology, most Flash content can be easily scaled to any size without distortion. Individuals with low vision may be able to interact with Flash content in ways not possible with HTML content

Blindness
Ensure screen reader accessibility or provide an accessible alternative Ensure keyboard accessibility Because of the audio capabilities of Flash, it can present content through audio, thus removing the need for a screen reader to extract audio content from the Flash movie. However, you must warn users of screen readers that a self voicing item will play, and give them the option of stopping the audio, but do not interfere with screen reader audio or keyboard commands Provide textual equivalents for all non-text elements that convey content or provide a function

For more information on creating Accessible Flash Content visit
http://www.webaim.org/techniques/flash/

For information on VoiceOver visit
http://www.456bereastreet.com/archive/200505/voiceover_and_safari_screen_reading_on_the_mac/
http://images.apple.com/accessibility/voiceover/pdf/VO_GettingStarted.pdf

Following is the comparison between various screen readers.



For Section 508 details visit
http://www.section508.gov/

Friday, October 19, 2007

A short history of Flash!

Hey people!

Today me and Sureshbabu, got around to talking about a history of flash, and turns out that several of my facts were wrong! It turned out to be quiet in interesting discussion.

Here's a short history of the software to tickle your interest.
  1. FutureSplash Animator (Spring 10 April 1996) – initial version of Flash with basic editing tools and a timeline
  2. Flash 1 (November 1996) – a Macromedia re-branded version of the FutureSplash Animator
  3. Flash 2 (June 1997) – Released with Flash Player 2, new features included: the object library
  4. Flash 3 (31 May 1998) – Released with Flash Player 3, new features included: the movieclip element, JavaScript plug-in integration, transparency and an external stand alone player
  5. Flash 4 (15 June 1999) – Released with Flash Player 4, new features included: internal variables, an input field, advanced Actionscript, and streaming MP3
  6. Flash 5 (24 August 2000) – Released with Flash Player 5, new features included: ActionScript 1.0 (based on ECMAScript, making it very similar to JavaScript in syntax), XML support, Smartclips (the precursor to components in Flash), HTML text formatting added for dynamic text
  7. Macromedia Flash MX (ver 6) (15 March 2002) – Released with Flash Player 6, new features included: a video codec (Sorenson Spark), Unicode, v1 UI Components, compression, ActionScript vector drawing API
  8. Flash MX 2004 (ver 7) (9 September 2003) – Released with Flash Player 7, new features included: Actionscript 2.0 (which enabled an object-oriented programming model for Flash), behaviors, extensibility layer (JSAPI), alias text support, timeline effects
    Macromedia Flash MX Professional 2004 (ver 7) (
    9 September 2003) – Released with Flash Player 7, new features included all Flash MX 2004 features plus: Screens (forms for non-linear state-based development and slides for organizing content in a linear slide format like PowerPoint), web services integration, video import wizard, Media Playback components (which encapsulate a complete MP3 and/or FLV player in a component that may be placed in a SWF), Data components (DataSet, XMLConnector, WebServicesConnector, XUpdateResolver, etc) and data binding APIs, the Project Panel, v2 UI components, and Transition class libraries.
  9. Macromedia Flash Basic 8 (released on 13 September 2005) – A less feature-rich version of the Flash authoring tool targeted at new users who only want to do basic drawing, animation and interactivity. Released with Flash Player 8, this version of the product has limited support for video and advanced graphical and animation effects.
  10. Macromedia Flash Professional 8 (released on 13 September 2005) – Released with the Flash Player 8, Flash Professional 8 added features focused on expressiveness, quality, video, and mobile authoring. New features included Filters and blend modes, easing control for animation, enhanced stroke properties (caps and joins), object-based drawing mode, run-time bitmap caching, FlashType advanced anti-aliasing for text, On2 VP6 advanced video codec, support for alpha transparency in video, a stand-alone encoder and advanced video importer, cue point support in FLV files, an advanced video playback component, and an interactive mobile device emulator.
  11. Flash CS3 Professional (as version 9, released on 16 April 2007) – Flash CS3 is the first version of Flash released under the Adobe name. CS3 features full support for ActionScript 3.0, allows tweens to be converted into ActionScript, adds better integration with other Adobe products such as Adobe Photoshop, and also provides better Vector drawing behavior, becoming more similar to Adobe Illustrator and Adobe Fireworks.

cool! huh! I took this down from the ubiquitious wikipedia.

http://en.wikipedia.org/wiki/Adobe_Flash

You get many more interesting tidbits here. Check it out!

Also, for those who are hungry for more here is the history of flash and how it came around by the inventor of Flash - Jonathan Gay.

until next time then!

ciao.

shauryashaurya

...

Thursday, October 18, 2007

Video Filters Part 2: Captions added

Video Filters Part 2: Captions added
Applications
Flash Video Filters demo app

The text is loaded from an XML file and synced with the video as it plays. Note that FLVPLayback has been replaced with the MediaDisplay component (although it could also work with FLVPlayback). Download source files

Thursday, October 11, 2007

Flash :: Components :: Plasmaplugs Table Renderer

Description:
The component provides an advanced HTML table rendering engine for Flash, complete with CSS support and advanced features such as row and column spans. The component can render all common types of content (text, SWF files, images and Flash library objects) and allows embedding custom fonts and offers advanced text rendering controls. This component is available for: Flash MX 2004, Flash Mx Professional 2004 and Flash 8. Features - Support for all common HTML tags and attributes - Supports percentage or fixed widths/heights for table or individual cells - Alpha levels for backgrounds and borders - CSS support - Images/SWF/library object inclusion into table cells - Run-time control for table or individual cells through ActionScript - Send/receive tables to/from a server side script (eg: PHP,ASP,CFM) - Links to custom ActionScript functions from within the table - Font embedding - Advanced text formatting - Built in Help Book.

Features of Plasmaplugs Table Renderer Flash Component
The component provides a html table rendering mechanism for flash, pretty much the same way a web browser renders a html table.Here are some of the supported features in Table Renderer:
Common html tags and attributes
Percentage/fixed widths and heights for table and cells
Alpha levels for backgrounds and borders
Embedded fonts
Css support
Images/swf/library movie clips inclusion into table cells
Dynamic control table and cells through actionscript
Send/receive tables to/from a server side script (eg: php,asp,cfm)
Link to custom actionscript functions from within the table cells
Built in Help Book that can be accessed via the Flash Help Panel

This component is available For:
FlashMx2004, FlashMx2004 Proffesional 2004 and Flash8

Resource Specification
Platform(s):

linux, windows, freebsd, osx, sun


Additional Info:
With a limit of 4 x 4 size for the tables as a trial limitation. No restrictions on the full version.

You can read more about the Table Renderer component here http://www.plasmaplugs.com/

Wednesday, October 10, 2007

'Voodoo Chicken' or the 'Vietnam War', If It Is Working Don't Change!

In figuring out the Big OOP Kahuna, we've all come across the ubiquitious 'Design Patterns' right?

Cool, now how many times just 'knowing' about a design pattern helped us write better code, create more robust systems, create reusable, more valuable code?

In my experience, not many.

No matter how well engineered the application, how well written the code, we still have rarely profited by writing code for that very application, in terms of raw effort, if at all, our profit margins have been pretty slim.

I go from project to project coding similar applications, and its a rare instance that I am able to reuse my code with minimal effort. Even in the cases where I know a 'trick' of how to get something done, I still struggle as hard in 'implementing' it in my current situation, as I fought with the problem in the first case!

There are too many examples to count : Multi Page Printing in flash, or Depth Management in Flash, or Drag-Drop like activities in Flash. Although I know how I did it in one project, It's still hardly a 15-20% reduction in my effort, the next time I do it!

This sort of problems plague us coders every step of the way, in every project, in every product.

But, where do we miss, where is it that things go wrong?

In the quest to improve the quality of (and practice of writing) my code, I came across a significant observation, I'll quote this verbatim :

"Identifying bad practices can be as valuable as identifying good practices."

How simple was that!

With this deceptively simple little observation in place, software engineers across the world set out to document both, their smiles as the good practices, and their sins as the bad ones.[okay pathetically cheesy line, but, you do get the point, don't you.]

The good practices took the shape of Design Patterns, from starting in the completely unrelated feild of architecture (the brick and mortar kind), they spread to management practices, governance and finally in programming of digital applications, a domain where we, the coders, encounter them most often.

But, what happened to the bad practices?

As it turns out, these were documented as the "Anti-Patterns".

Their official definition is :
"An AntiPattern is a pattern that tells how to go from a problem to a bad solution."

It makes an interesting read, wading thru the Anti Patterns Catalog.

I must confess to have comitted many of these sins as listed in the catalogue :)
Look thru, how many can you recognise to have comitted? Ummm... don't tell me, hehe...

But, there's always hope, and I am trying to improve, I look at some of these anti-patterns, and try to eliminate them from my day-to-day work and from my line-to-line code.

Here are some of my favorites, not just interesting names, but, interesting lessons in software engineering too, check them out :
So, people, take a look at these and see if there is anything you can find to help you improve as a coder, or help you resolve an issue your project...

BTW: "Voodoo chicken" is also a slang for "a spicy chicken dish"...

ciao.

shauryashaurya

PDF Tool

















  • SWF Tools is a collection of SWF manipulation and creation utilities written by Rainer Böhme and Matthias Kramm. It is released under the GPL. Included are:
    PDF2SWF A PDF to SWF Converter. Generates one frame per page. Enables you to have fully formatted text, including tables, formulas etc. inside your Flash Movie. It's based on the xpdf PDF parser from Derek B. Noonburg.
  • SWFCombine A tool for inserting SWFs into Wrapper SWFs. (Templates) E.g. for including the pdf2swf SWFs in some sort of Browsing-SWF.
    SWFStrings Scans SWFs for text data.
  • SWFDump Prints out various informations about SWFs.
    JPEG2SWF Takes one or more JPEG pictures and generates a SWF slideshow.
    PNG2SWF Like JPEG2SWF, only for PNGs.
  • GIF2SWF Converts GIFs to SWF. Also able to handle animated gifs.
    WAV2SWF Converts WAV audio files to SWFs, using the L.A.M.E. MP3 encoder library.
    AVI2SWF Converts AVI animation files to SWF. It supports Flash MX H.263 compression. Some examples can be found at examples.html.
  • Font2SWF Converts font files (TTF, Type1) to SWF.
    SWFBBox Allows to readjust SWF bounding boxes.
    SWFC A tool for creating SWF files from simple script files.
    SWFExtract Allows to extract Movieclips, Sounds, Images etc. from SWF files.
    RFXSWF Library A fully featured library which can be used for standalone SWF generation. Includes support for Bitmaps, Buttons, Shapes, Text, Fonts, Sound etc. It also has support for ActionScript using the Ming ActionCompiler. SWFTools has been reported to work on Solaris, Linux, FreeBSD, OpenBSD, HP-UX, MacOS X and Windows 98/ME/2000/XP.

Introduction to Apollo

Apollo is a new cross-platform desktop runtime being developed by Adobe thatallows web developers to use web technologies to build and deploy Rich InternetApplications and web applications to the desktop.In order to better understand what Apollo enables, and which problems it tries toaddress, it is useful to first take a quick look over at the (relatively short) history ofweb applications.