SlideShare a Scribd company logo
1 of 41
Progressive
                              Enhancement
                              Enlarge your Flash Accessibility


Saturday, February 28, 2009
Armando Alves




                               asourceofinspiration.com
                               twitter.com/armandoalves
                               armandoalves@gmail.com
Saturday, February 28, 2009
Progressive Enhancement




Saturday, February 28, 2009
Inclusive Web Design



                              Steve Champeon + Nick Finck
                              hesketh.com




Saturday, February 28, 2009
Degradation vs.
                     Looking backward         Looking forward




                   Graceful Degradation   Progressive Enhancement


Saturday, February 28, 2009
Why should I care?




Saturday, February 28, 2009
Why should I care?




      Acessibility




Saturday, February 28, 2009
Why should I care?




      Acessibility            Ad Blocking




Saturday, February 28, 2009
Why should I care?




      Acessibility            Ad Blocking   Search Marketing




Saturday, February 28, 2009
SWF Searchability
         ★ An inside look to RIAs and gadgets
                              ‣ AS1 to AS3 support
         ★ Indexing Flash is limited
                              ‣ Textual Content and URLs
                              ‣ Diminished support to Javascript embedded SWFs
                              ‣ External sources separately indexed
                              ‣ Bidirectional languages are out
                              ‣ Deep linking forgotten


Saturday, February 28, 2009
Why should I care?
                              New devices and platforms




Saturday, February 28, 2009
The 3 layers




Saturday, February 28, 2009
The 3 layers

             Content




Saturday, February 28, 2009
The 3 layers

             Content          XHTML




Saturday, February 28, 2009
The 3 layers

             Content          XHTML


             Presentation




Saturday, February 28, 2009
The 3 layers

             Content          XHTML


             Presentation       CSS




Saturday, February 28, 2009
The 3 layers

             Content          XHTML


             Presentation       CSS


             Interaction




Saturday, February 28, 2009
The 3 layers

             Content                   XHTML


             Presentation                 CSS


             Interaction      Javascript/Flash




Saturday, February 28, 2009
http://unobtrusify.com/


Saturday, February 28, 2009
http://www.refunk.com/blog/


Saturday, February 28, 2009
From Zero to Hero


                              ★ XHTML / CSS
                              ★ Javascript / Ajax
                              ★ Flex / Flash




Saturday, February 28, 2009
“In truth, there are no bad technologies. There are
                  just bad uses of a technology. The cruel hand that
                  fate had dealt JavaScript reminds me of another
                  much maligned technology: Macromedia’s Flash.”
                                            - Jeremy Keith, Dom Scripting




Saturday, February 28, 2009
Solutions



Saturday, February 28, 2009
The 7 habits
          of highly accessible RIAs
         1. Be Proactive
         2. Come with the End in Mind
         3. Put First Things First
         4. Think Win/Win
         5. Seek First to Understand, Then to be Understood
         6. Synergize
         7. Sharpen the Saw


Saturday, February 28, 2009
1. Be Proactive
         ★ Start with a goal:
           ‣ Acessibility and Distribution of Information




Saturday, February 28, 2009
2. Come with the End in

         ★ Function over form
           ‣ Essential functions without 3rd layer
         ★ Consider Different Platforms
           ‣ Fallback on input devices




Saturday, February 28, 2009
3. Put First Things First
         ★ Markup first
           ‣ Additional functionality enhances experience
         ★ Basic fallback
           ‣ Native interactive elements: links, forms




Saturday, February 28, 2009
4. Think Win/Win
         ★ Test for Developers, Test for Users
           ‣ Enhancement according to device capability




Saturday, February 28, 2009
5. Seek First to Understand,
         Then to be Understood
         ★ Understand the devices
           ‣ Limitations
           ‣ Capabilities




Saturday, February 28, 2009
6. Synergize
         ★ Selective delivery
           ‣ Device/Browser detection
           ‣ Stylesheet by media




Saturday, February 28, 2009
7. Sharpen the Saw
         ★ Modular code
           ‣ Extendable to new technologies




Saturday, February 28, 2009
Enhancement in Practice




Saturday, February 28, 2009
SWFObject




                              Alternate    Flash
                              Content     Content


Saturday, February 28, 2009
XHTML




Saturday, February 28, 2009
XHTML + CSS




Saturday, February 28, 2009
XHTML + CSS + SWFObject




Saturday, February 28, 2009
SWFObject +




                              Alternate    Flash + Deep
                              Content     Content  Linking


Saturday, February 28, 2009
XML +SWFObject + SWF Address




Saturday, February 28, 2009
SWFObject +




                              Alternate    Flash + Deep
                               Content    Content  Linking


Saturday, February 28, 2009
XSLT Transformation in PHP




Saturday, February 28, 2009
Alternate Content Enhancement




Saturday, February 28, 2009

More Related Content

Viewers also liked

Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...
Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...
Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...Jeff Stone
 
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...Paulo Correia
 
ალცჰაიმერის დაავადება
ალცჰაიმერის დაავადებაალცჰაიმერის დაავადება
ალცჰაიმერის დაავადებაGeorge Gagua
 
คู่มือการสร้างบล็อก
คู่มือการสร้างบล็อกคู่มือการสร้างบล็อก
คู่มือการสร้างบล็อกKhem Chanathip
 
Codes and conventions of the documentary genre
Codes and conventions of the documentary genreCodes and conventions of the documentary genre
Codes and conventions of the documentary genrejoshuariser
 
An introduction to systemic functional linguistics
An introduction to systemic functional linguisticsAn introduction to systemic functional linguistics
An introduction to systemic functional linguisticsiendah lestari
 
Functional approach
Functional approachFunctional approach
Functional approachatemabel
 
Cómo Sistematizar
Cómo SistematizarCómo Sistematizar
Cómo SistematizarClau Ber
 
Sistematización de Experiencias Educativas. CECCSICA. Compilación.
Sistematización de Experiencias Educativas. CECCSICA. Compilación.Sistematización de Experiencias Educativas. CECCSICA. Compilación.
Sistematización de Experiencias Educativas. CECCSICA. Compilación.Gustavo Bolaños
 
Lecture 18 open economy
Lecture 18 open economyLecture 18 open economy
Lecture 18 open economyGale Pooley
 

Viewers also liked (14)

Khanittha- Resume
Khanittha- ResumeKhanittha- Resume
Khanittha- Resume
 
Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...
Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...
Unpacking Wine Package Design: "Best Practices for Winning with Consumers" (p...
 
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...
Por que vale a pena conhecer e explorar o potencial acadêmico e pedagógico do...
 
ალცჰაიმერის დაავადება
ალცჰაიმერის დაავადებაალცჰაიმერის დაავადება
ალცჰაიმერის დაავადება
 
คู่มือการสร้างบล็อก
คู่มือการสร้างบล็อกคู่มือการสร้างบล็อก
คู่มือการสร้างบล็อก
 
KAVEEVIVITCHAI-
KAVEEVIVITCHAI-KAVEEVIVITCHAI-
KAVEEVIVITCHAI-
 
My Resume Full
My Resume FullMy Resume Full
My Resume Full
 
Codes and conventions of the documentary genre
Codes and conventions of the documentary genreCodes and conventions of the documentary genre
Codes and conventions of the documentary genre
 
CV Tran Thai Son
CV Tran Thai SonCV Tran Thai Son
CV Tran Thai Son
 
An introduction to systemic functional linguistics
An introduction to systemic functional linguisticsAn introduction to systemic functional linguistics
An introduction to systemic functional linguistics
 
Functional approach
Functional approachFunctional approach
Functional approach
 
Cómo Sistematizar
Cómo SistematizarCómo Sistematizar
Cómo Sistematizar
 
Sistematización de Experiencias Educativas. CECCSICA. Compilación.
Sistematización de Experiencias Educativas. CECCSICA. Compilación.Sistematización de Experiencias Educativas. CECCSICA. Compilación.
Sistematización de Experiencias Educativas. CECCSICA. Compilación.
 
Lecture 18 open economy
Lecture 18 open economyLecture 18 open economy
Lecture 18 open economy
 

More from Armando Alves

Mais do que um viral
Mais do que um viralMais do que um viral
Mais do que um viralArmando Alves
 
Métricas para Social Media
Métricas para Social MediaMétricas para Social Media
Métricas para Social MediaArmando Alves
 
API: Advertising Propagation Interface
API: Advertising Propagation InterfaceAPI: Advertising Propagation Interface
API: Advertising Propagation InterfaceArmando Alves
 
UFOs: Abduction by the marketing hype cycle
UFOs: Abduction by the marketing hype cycleUFOs: Abduction by the marketing hype cycle
UFOs: Abduction by the marketing hype cycleArmando Alves
 

More from Armando Alves (7)

Mais do que um viral
Mais do que um viralMais do que um viral
Mais do que um viral
 
Métricas para Social Media
Métricas para Social MediaMétricas para Social Media
Métricas para Social Media
 
Teckitalk
TeckitalkTeckitalk
Teckitalk
 
A Arte Do Viral
A Arte Do ViralA Arte Do Viral
A Arte Do Viral
 
API: Advertising Propagation Interface
API: Advertising Propagation InterfaceAPI: Advertising Propagation Interface
API: Advertising Propagation Interface
 
Events 2.Social
Events 2.SocialEvents 2.Social
Events 2.Social
 
UFOs: Abduction by the marketing hype cycle
UFOs: Abduction by the marketing hype cycleUFOs: Abduction by the marketing hype cycle
UFOs: Abduction by the marketing hype cycle
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Progressive Enhancement with Flash

  • 1. Progressive Enhancement Enlarge your Flash Accessibility Saturday, February 28, 2009
  • 2. Armando Alves asourceofinspiration.com twitter.com/armandoalves armandoalves@gmail.com Saturday, February 28, 2009
  • 4. Inclusive Web Design Steve Champeon + Nick Finck hesketh.com Saturday, February 28, 2009
  • 5. Degradation vs. Looking backward Looking forward Graceful Degradation Progressive Enhancement Saturday, February 28, 2009
  • 6. Why should I care? Saturday, February 28, 2009
  • 7. Why should I care? Acessibility Saturday, February 28, 2009
  • 8. Why should I care? Acessibility Ad Blocking Saturday, February 28, 2009
  • 9. Why should I care? Acessibility Ad Blocking Search Marketing Saturday, February 28, 2009
  • 10. SWF Searchability ★ An inside look to RIAs and gadgets ‣ AS1 to AS3 support ★ Indexing Flash is limited ‣ Textual Content and URLs ‣ Diminished support to Javascript embedded SWFs ‣ External sources separately indexed ‣ Bidirectional languages are out ‣ Deep linking forgotten Saturday, February 28, 2009
  • 11. Why should I care? New devices and platforms Saturday, February 28, 2009
  • 12. The 3 layers Saturday, February 28, 2009
  • 13. The 3 layers Content Saturday, February 28, 2009
  • 14. The 3 layers Content XHTML Saturday, February 28, 2009
  • 15. The 3 layers Content XHTML Presentation Saturday, February 28, 2009
  • 16. The 3 layers Content XHTML Presentation CSS Saturday, February 28, 2009
  • 17. The 3 layers Content XHTML Presentation CSS Interaction Saturday, February 28, 2009
  • 18. The 3 layers Content XHTML Presentation CSS Interaction Javascript/Flash Saturday, February 28, 2009
  • 21. From Zero to Hero ★ XHTML / CSS ★ Javascript / Ajax ★ Flex / Flash Saturday, February 28, 2009
  • 22. “In truth, there are no bad technologies. There are just bad uses of a technology. The cruel hand that fate had dealt JavaScript reminds me of another much maligned technology: Macromedia’s Flash.” - Jeremy Keith, Dom Scripting Saturday, February 28, 2009
  • 24. The 7 habits of highly accessible RIAs 1. Be Proactive 2. Come with the End in Mind 3. Put First Things First 4. Think Win/Win 5. Seek First to Understand, Then to be Understood 6. Synergize 7. Sharpen the Saw Saturday, February 28, 2009
  • 25. 1. Be Proactive ★ Start with a goal: ‣ Acessibility and Distribution of Information Saturday, February 28, 2009
  • 26. 2. Come with the End in ★ Function over form ‣ Essential functions without 3rd layer ★ Consider Different Platforms ‣ Fallback on input devices Saturday, February 28, 2009
  • 27. 3. Put First Things First ★ Markup first ‣ Additional functionality enhances experience ★ Basic fallback ‣ Native interactive elements: links, forms Saturday, February 28, 2009
  • 28. 4. Think Win/Win ★ Test for Developers, Test for Users ‣ Enhancement according to device capability Saturday, February 28, 2009
  • 29. 5. Seek First to Understand, Then to be Understood ★ Understand the devices ‣ Limitations ‣ Capabilities Saturday, February 28, 2009
  • 30. 6. Synergize ★ Selective delivery ‣ Device/Browser detection ‣ Stylesheet by media Saturday, February 28, 2009
  • 31. 7. Sharpen the Saw ★ Modular code ‣ Extendable to new technologies Saturday, February 28, 2009
  • 33. SWFObject Alternate Flash Content Content Saturday, February 28, 2009
  • 35. XHTML + CSS Saturday, February 28, 2009
  • 36. XHTML + CSS + SWFObject Saturday, February 28, 2009
  • 37. SWFObject + Alternate Flash + Deep Content Content Linking Saturday, February 28, 2009
  • 38. XML +SWFObject + SWF Address Saturday, February 28, 2009
  • 39. SWFObject + Alternate Flash + Deep Content Content Linking Saturday, February 28, 2009
  • 40. XSLT Transformation in PHP Saturday, February 28, 2009

Editor's Notes

  1. A concept brought from engineering, brought to mainstream web development in 2003by Steve Champeon and Nick Finck on their 2003 SXSW talk “Inclusive Web Design For the Future”. Until then, most web development companies were doing what it’s called Graceful Degradation, focusing on the current technologies and offering a small support to older browsers. Back then, most of concerns were related to graphical browsers, with acessible experiences constrained by economical pressures.
  2. So what’s the difference between the older Graceful Degradation and today’s Progressive Enhancement? Graceful Degradation The website development was targeted for the latest browsers, with some backward support. The main concern was to create a richer experience, with a high focus on presentation. Progressive Enhancement The focus here is on content, and no longer on presentaion for graphic browsers. The main concern is to assure the optimal distribution of content. In modern web development we should look forward, to other kind of displays and platforms. But it does it a concern for all devices, starting with the least capable and walking all the way up to newer devices, enricheing the experiences but still separating presentation from information, with greater concern regarding acessibility and universal distribution, by using current web standards.
  3. So, the web design isn’t always about the visuals, but also to assure that information is available to the widest audience possible, to make it acessibity. Another recent problem when deploying web applications based on the Flash Platform, is the increasing number of people using Flash blocking extensions, like Ad Block Plus. And for those thinking that a 97% adoption rate of the Flash Player is enough, better think again, because amongst those 3% is one of the highest sources of traffic: search engines.
  4. So, the web design isn’t always about the visuals, but also to assure that information is available to the widest audience possible, to make it acessibity. Another recent problem when deploying web applications based on the Flash Platform, is the increasing number of people using Flash blocking extensions, like Ad Block Plus. And for those thinking that a 97% adoption rate of the Flash Player is enough, better think again, because amongst those 3% is one of the highest sources of traffic: search engines.
  5. So, the web design isn’t always about the visuals, but also to assure that information is available to the widest audience possible, to make it acessibity. Another recent problem when deploying web applications based on the Flash Platform, is the increasing number of people using Flash blocking extensions, like Ad Block Plus. And for those thinking that a 97% adoption rate of the Flash Player is enough, better think again, because amongst those 3% is one of the highest sources of traffic: search engines.
  6. Despite the previous attempts, mostly from Google, to index SWFs, it was only with Adobe’s release of their Searchable SWF library, that rich media became part of the indexed web. The main reasons to improve SWF searchability were the increasing amount of Rich Internet Applications, gadgets and games that were available to large audiences. However, the indexation is pretty much limited. The bot algorithm works much like a real person, exploring the SWF file, clicking in buttons, inserting inputs and traversing on the multple states of the application. For now, it only indexes text and URLs, and ignores images and dynamic content. When first integrated by Google, it also didn’t supported Javascript embedding techniques like SWFObject, but recently that has changed with support for the most common embedding techniques. Other limitations includes the lack of support for dynamic languages and deep linking. The most problematic is still the absence of dynamic content indexing. With so many of RIAs and websites getting data from external sources, like XML files, a lot of the hidden web is still left outside, with no context whatsoever. And even if individual XML documents are indexed, they are mostly useless as they have no context and semantic value whatsoever, thus no help to search engines.
  7. And, last but not the least, one of the reasons you should care: devices that aren’t supporting (yet) the Flash Platform like the iPhone
  8. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  9. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  10. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  11. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  12. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  13. Modern web development is separated in 3 layers: 1) Content From HTML 4 to XHTML with an eye to HTML 5, with support for device languages like WAP and XHTML Basic the content is deployed with langues with semantic capabilities 2) PresentationSecond, we add the presentation layer with languages like CSS1 and CSS2 3) Interactivity While the previous 2 layers are presente on most devices and graphical browseres, interactivity is where the dreams and nightmares happen, and what i’l bet talking about. We’ll try to deploy rich visual experience while keeping it available to the widest audience possible, with future compatibility also in mind.
  14. We’ll work our way up from Zero to Hero, from basic web standard based pages to Rich Internet Application. Web experiences don’t have to be dull, but they don’t have to be unaccessible either. We can have it both. Instead of starting by building the rich experinece first, we’ll start with the basics. Content first. Then we add a presentation layer. And then, we apply the rich media and interactivity (Javascript, Flash).
  15. A interesting comparison to what RIAs can be, with regards to accessibility are the 7 habits of Highly effective people, by Stephen Covey, that i freely adapted for this talk.
  16. Start with a goal in mind: Accessibility and Distribution, by separating Content / Presentation / Interactivity It will be easier in the end, easier for maintenance at least.
  17. Functionality first. We should have the basic functionality working without having to use the 3rd layer: If Javascript / Ajax / Flash aren’t there we should still be able to do basic actions. Also, don’t forget where it’s going to be used: in a graphical browser we can use the TAB key to jump between inputs,but on a cellphone there’s no TAB key, so we should keep that in minf and add support for directional navigation with arrow keys.
  18. Start with the first things: semantic markup Only add additional elements when it gets the experience richer.
  19. Check if the devices/browsers/platforms support the additional 3rd layer. So don’t add device specific events (onchange and onblur) unless you’re covered all others, so users don’t get frustated with your application on your device.
  20. Understand the plataform/device/browser From screen resolution to conectivity it all affects how your application behaves.
  21. Deliver the experience with regards to what your users devices are able to interpret For instance, on Ajax applications, you can use @include to bypass non graphic browsers. Or use media target for stylesheets: print, mobile, screen.
  22. If you have you code by modules, it will be easier to adapt to richer experiences. From includes with conditional comments to external scripts, it will be easier to maintain the application and extending it when new technologies are available.