SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Editable Documents on the Web

T-111.5502 Seminar on Media Technology B P (4-8 cr)
Presentation

Markku Laine, M.Sc. (Tech.)
markku.laine@aalto.fi

                                November 8, 2011
Presentation Outline

•    Evolution
•    Revolution(?): The HTML5 Approach
•    Research topics
•    Conclusion




                                 2
Evolution




       3
1990: The WorldWideWeb (Nexus)
Browser
•  The first Web browser
•  Direct manipulation of text on
   screen (WYSIWYG)
•  The user reading a Web page
   can edit and save that page
•  A true collaboration platform!




                                        Source: The World Wide Web Consortium (W3C)


                                    4
1993: The Mosaic Browser

•  The browser that popularized
   the Web
•  Regression: the user reading a
   Web page cannot anymore edit
   that page
•  The collaborative nature was
   lost!
   –  Included support for
      annotations, though




                                        Source: Wikipedia


                                    5
2000: The Internet Explorer 5.5 Browser

•  The mainstream Web browser
•  The user reading a Web page
   can edit the entire page
   –  document.designMode
   –  element.contentEditable




                                     Source: Wikipedia


                                 6
????: JavaScript-Based WYSIWYG
Editors
•  Can be embedded into any
   Web page
•  http://testbed.tml.hut.fi/tutorial/
   htmleditors.xformsdb




                                             Source: XFormsDB


                                         7
Revolution(?):
The HTML5 Approach




           8
Google's "Hype Cycle" for HTML5




      1st WHATWG draft   1st W3C draft




                                         Source: Google Insights for Search


                               9
Features Related to Editing Documents

•  The contentEditable attribute
•  The designMode property
•  Editing APIs

•   WYSIWYG editing for Web pages
   –  Certain elements can be restricted from being edited
•   Implemented in all major browsers




                                       10
Demo




       11
<div contenteditable="true">




                12
HTML Element's contenteditable
Attribute
•  Governs just the element on which it appears, and that
   element's children
   –  That is, makes those elements editable
•  Enables Web developers to build element-level rich text
   editors
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/editing.html#contenteditable




                                       13
The API calls

•  element.contentEditable [= value]
•  element.isContentEditable




                                 14
Actions within Editing Hosts

•  Move the caret
•  Change the selection
•  Insert text
•  Break block
•  Insert a line separator
•  Delete
•  Insert, and wrap text in, semantic elements
•  Select and move non-editable elements nested inside
   editing hosts
•  Edit form controls nested inside editing hosts

                                15
document.designMode="on"




              16
Document Object's designMode Property

•  Governs the entire document
   –  That is, makes the entire document editable
•  Enables Web developers to build document-level rich
   text editors
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/editing.html#designMode




                                       17
The API calls

•  document.designMode [= value]




                               18
Editing APIs




        19
Document Object's Editing APIs

•  A set of API calls to issue commands (e.g., bold and
   italic) on the editable region−that is, a document or an
   element), and to query the current state of the region
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/dnd.html#editing-apis




                                      20
The API calls

•    document.execCommand( commandId [,... [,...]] )
•    document.queryCommandEnabled( commandId )
•    document.queryCommandIndeterm( commandId )
•    document.queryCommandState( commandId )
•    document.queryCommandSupported( commandId )
•    document.queryCommandValue( commandId )




                                 21
Possible values for commandId
(specified by W3C)
•  bold, italic, subscript, superscript
•  createLink, unlink, formatBlock
•  delete, forwardDelete
•  insertImage, insertHTML, insertLineBreak,
   insertOrderedList, insertUnorderedList, insertParagraph,
   insertText
•  redo, undo, selectAll, unselect
•  vendorID-customCommandID
•  Anything else  do nothing


                                  22
ExecCommand Demo




  http://www.quirksmode.org/dom/execCommand/




                          23
Implementation Status




                             Source: http://caniuse.com/


                        24
Research Topics




          25
Research Topics

•  Code debugging game called Gidget (Lee and Ko, 2011)
•  Collaborative, lightweight in-line editing (Rees, 2000)
•  Web as an application platform (Taivalsaari and
   Mikkonen, 2011 & Anttonen et al., 2011)
•  Collaborative and interactive document editing (Fujimoto
   and Matsuo, 2006)




                                 26
Conclusion




       27
Conclusion

•  Support for in browser rich text editing has come and
   gone during the history of the Web
•  HTML5 provides improvements related to editing
   documents in browsers
   –  Some compatibility problems between different browsers
•  Typically used together with other HTML5 features, such
   as client-side databases as well as drag-and-drop
•  "This document cannot be edited"  Will this change
   the way we interact with documents permanently?



                                      28
References

•  Rees, M.J. "User Interfaces for Lightweight In-Line
   Editing of Web Pages". In AUIC, 2000.
•  Taivalsaari, A. and Mikkonen, T. "The Web as an
   Application Platform: The Saga Continues". In SEAA,
   2011.
•  Lee, M.J. and Ko, A.J. "Personifying Programming Tool
   Feedback Improves Novice Programmers' Learning". In
   ICER, 2011.
•  Anttonen, M. et al. "Transforming the Web into a Real
   Application Platform: New Technologies, Emerging
   Trends and Missing Pieces". In SAC'11, 2011.

                                29
Thank You!




             Questions? Comments?
              markku.laine@aalto.fi




                           30

Más contenido relacionado

La actualidad más candente

Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Serviceshannonhill
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsGunjan Datta
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesBoyan Borisov
 
Introduction to Google APIs
Introduction to Google APIsIntroduction to Google APIs
Introduction to Google APIsSiva Arunachalam
 
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)Igalia
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsAndreas Jung
 
Product Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical SkillsProduct Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical SkillsSandeep Adwankar
 
iPhone Web Development and Ruby On Rails
iPhone Web Development and Ruby On RailsiPhone Web Development and Ruby On Rails
iPhone Web Development and Ruby On RailsJose de Leon
 
How To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit AgheraHow To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit AgheraDrupalMumbai
 
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...Alfresco Software
 
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Day Vienna 2015 - Technical Track - REST API of the FutureAlfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Day Vienna 2015 - Technical Track - REST API of the FutureAlfresco Software
 
«The Grail: React based Isomorph apps framework»​
«The Grail: React based Isomorph apps framework»​«The Grail: React based Isomorph apps framework»​
«The Grail: React based Isomorph apps framework»​FDConf
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
Drupal8 Introduction
Drupal8 IntroductionDrupal8 Introduction
Drupal8 IntroductionMadhav Vyas
 
What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)Ingo Schommer
 
Using JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressUsing JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressJohn Cook
 
Angular patterns
Angular patternsAngular patterns
Angular patternsPremkumar M
 
Blazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksBlazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksGaurav Singh
 

La actualidad más candente (20)

Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government Environments
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
Introduction to Google APIs
Introduction to Google APIsIntroduction to Google APIs
Introduction to Google APIs
 
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
Product Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical SkillsProduct Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical Skills
 
iPhone Web Development and Ruby On Rails
iPhone Web Development and Ruby On RailsiPhone Web Development and Ruby On Rails
iPhone Web Development and Ruby On Rails
 
How To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit AgheraHow To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit Aghera
 
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
 
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Day Vienna 2015 - Technical Track - REST API of the FutureAlfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
 
Semantic editor
Semantic editorSemantic editor
Semantic editor
 
«The Grail: React based Isomorph apps framework»​
«The Grail: React based Isomorph apps framework»​«The Grail: React based Isomorph apps framework»​
«The Grail: React based Isomorph apps framework»​
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
Drupal8 Introduction
Drupal8 IntroductionDrupal8 Introduction
Drupal8 Introduction
 
What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)
 
Using JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressUsing JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPress
 
Angular patterns
Angular patternsAngular patterns
Angular patterns
 
Single page application
Single page applicationSingle page application
Single page application
 
Blazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksBlazor certification training - Dot Net Tricks
Blazor certification training - Dot Net Tricks
 

Destacado

XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentMarkku Laine
 
Monitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMonitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMarkku Laine
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageConnecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageMarkku Laine
 
Wttc2013 econ impact svg
Wttc2013 econ impact svgWttc2013 econ impact svg
Wttc2013 econ impact svgdean dundas
 
Presentation [superscript] sup
Presentation [superscript] sup Presentation [superscript] sup
Presentation [superscript] sup vaod
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentXFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentMarkku Laine
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web ApplicationsMarkku Laine
 

Destacado (7)

XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web Development
 
Monitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMonitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in Finland
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageConnecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup Language
 
Wttc2013 econ impact svg
Wttc2013 econ impact svgWttc2013 econ impact svg
Wttc2013 econ impact svg
 
Presentation [superscript] sup
Presentation [superscript] sup Presentation [superscript] sup
Presentation [superscript] sup
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentXFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
 

Similar a Editable Documents on the Web

Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02
Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02
Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02Harshith Rockx
 
Web Technologies 2.0
Web Technologies 2.0Web Technologies 2.0
Web Technologies 2.0Andleeb Joyia
 
Modular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireJeff Fox
 
Front end for back end developers
Front end for back end developersFront end for back end developers
Front end for back end developersWojciech Bednarski
 
Power up your Project Sites - SPS New Hampshire 2015
Power up your Project Sites - SPS New Hampshire 2015Power up your Project Sites - SPS New Hampshire 2015
Power up your Project Sites - SPS New Hampshire 2015bgerman
 
LiquidThreads wikimania 2010
LiquidThreads wikimania 2010LiquidThreads wikimania 2010
LiquidThreads wikimania 2010werdnum
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionIWMW
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Jeremy Likness
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
 
Technical writing tools
Technical writing toolsTechnical writing tools
Technical writing toolsAnil Menon
 
X All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementX All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementPhase2
 
Choosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring ToolChoosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring ToolRaghuram Pandurangan
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with ShareAlfresco Software
 
Docs Like Code: Strategies and Stories
Docs Like Code: Strategies and StoriesDocs Like Code: Strategies and Stories
Docs Like Code: Strategies and StoriesAnne Gentle
 

Similar a Editable Documents on the Web (20)

Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02
Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02
Webdesigningandpublishingcomputerstudiestheorylesson 101212054612-phpapp02
 
9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
 
Font-End Development Tools
Font-End Development ToolsFont-End Development Tools
Font-End Development Tools
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
Web Technologies 2.0
Web Technologies 2.0Web Technologies 2.0
Web Technologies 2.0
 
Rubedo features list
Rubedo features listRubedo features list
Rubedo features list
 
Modular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter Bonfire
 
Front end for back end developers
Front end for back end developersFront end for back end developers
Front end for back end developers
 
Power up your Project Sites - SPS New Hampshire 2015
Power up your Project Sites - SPS New Hampshire 2015Power up your Project Sites - SPS New Hampshire 2015
Power up your Project Sites - SPS New Hampshire 2015
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
LiquidThreads wikimania 2010
LiquidThreads wikimania 2010LiquidThreads wikimania 2010
LiquidThreads wikimania 2010
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource Condition
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
 
Microsoft FrontPage PPT
Microsoft FrontPage PPTMicrosoft FrontPage PPT
Microsoft FrontPage PPT
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
Technical writing tools
Technical writing toolsTechnical writing tools
Technical writing tools
 
X All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementX All The Things: Enterprise Content Management
X All The Things: Enterprise Content Management
 
Choosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring ToolChoosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring Tool
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with Share
 
Docs Like Code: Strategies and Stories
Docs Like Code: Strategies and StoriesDocs Like Code: Strategies and Stories
Docs Like Code: Strategies and Stories
 

Último

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Último (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Editable Documents on the Web

  • 1. Editable Documents on the Web T-111.5502 Seminar on Media Technology B P (4-8 cr) Presentation Markku Laine, M.Sc. (Tech.) markku.laine@aalto.fi November 8, 2011
  • 2. Presentation Outline •  Evolution •  Revolution(?): The HTML5 Approach •  Research topics •  Conclusion 2
  • 4. 1990: The WorldWideWeb (Nexus) Browser •  The first Web browser •  Direct manipulation of text on screen (WYSIWYG) •  The user reading a Web page can edit and save that page •  A true collaboration platform! Source: The World Wide Web Consortium (W3C) 4
  • 5. 1993: The Mosaic Browser •  The browser that popularized the Web •  Regression: the user reading a Web page cannot anymore edit that page •  The collaborative nature was lost! –  Included support for annotations, though Source: Wikipedia 5
  • 6. 2000: The Internet Explorer 5.5 Browser •  The mainstream Web browser •  The user reading a Web page can edit the entire page –  document.designMode –  element.contentEditable Source: Wikipedia 6
  • 7. ????: JavaScript-Based WYSIWYG Editors •  Can be embedded into any Web page •  http://testbed.tml.hut.fi/tutorial/ htmleditors.xformsdb Source: XFormsDB 7
  • 9. Google's "Hype Cycle" for HTML5 1st WHATWG draft 1st W3C draft Source: Google Insights for Search 9
  • 10. Features Related to Editing Documents •  The contentEditable attribute •  The designMode property •  Editing APIs •   WYSIWYG editing for Web pages –  Certain elements can be restricted from being edited •   Implemented in all major browsers 10
  • 11. Demo 11
  • 13. HTML Element's contenteditable Attribute •  Governs just the element on which it appears, and that element's children –  That is, makes those elements editable •  Enables Web developers to build element-level rich text editors •  W3C Working Draft –  http://www.w3.org/TR/html5/editing.html#contenteditable 13
  • 14. The API calls •  element.contentEditable [= value] •  element.isContentEditable 14
  • 15. Actions within Editing Hosts •  Move the caret •  Change the selection •  Insert text •  Break block •  Insert a line separator •  Delete •  Insert, and wrap text in, semantic elements •  Select and move non-editable elements nested inside editing hosts •  Edit form controls nested inside editing hosts 15
  • 17. Document Object's designMode Property •  Governs the entire document –  That is, makes the entire document editable •  Enables Web developers to build document-level rich text editors •  W3C Working Draft –  http://www.w3.org/TR/html5/editing.html#designMode 17
  • 18. The API calls •  document.designMode [= value] 18
  • 20. Document Object's Editing APIs •  A set of API calls to issue commands (e.g., bold and italic) on the editable region−that is, a document or an element), and to query the current state of the region •  W3C Working Draft –  http://www.w3.org/TR/html5/dnd.html#editing-apis 20
  • 21. The API calls •  document.execCommand( commandId [,... [,...]] ) •  document.queryCommandEnabled( commandId ) •  document.queryCommandIndeterm( commandId ) •  document.queryCommandState( commandId ) •  document.queryCommandSupported( commandId ) •  document.queryCommandValue( commandId ) 21
  • 22. Possible values for commandId (specified by W3C) •  bold, italic, subscript, superscript •  createLink, unlink, formatBlock •  delete, forwardDelete •  insertImage, insertHTML, insertLineBreak, insertOrderedList, insertUnorderedList, insertParagraph, insertText •  redo, undo, selectAll, unselect •  vendorID-customCommandID •  Anything else  do nothing 22
  • 23. ExecCommand Demo http://www.quirksmode.org/dom/execCommand/ 23
  • 24. Implementation Status Source: http://caniuse.com/ 24
  • 26. Research Topics •  Code debugging game called Gidget (Lee and Ko, 2011) •  Collaborative, lightweight in-line editing (Rees, 2000) •  Web as an application platform (Taivalsaari and Mikkonen, 2011 & Anttonen et al., 2011) •  Collaborative and interactive document editing (Fujimoto and Matsuo, 2006) 26
  • 28. Conclusion •  Support for in browser rich text editing has come and gone during the history of the Web •  HTML5 provides improvements related to editing documents in browsers –  Some compatibility problems between different browsers •  Typically used together with other HTML5 features, such as client-side databases as well as drag-and-drop •  "This document cannot be edited"  Will this change the way we interact with documents permanently? 28
  • 29. References •  Rees, M.J. "User Interfaces for Lightweight In-Line Editing of Web Pages". In AUIC, 2000. •  Taivalsaari, A. and Mikkonen, T. "The Web as an Application Platform: The Saga Continues". In SEAA, 2011. •  Lee, M.J. and Ko, A.J. "Personifying Programming Tool Feedback Improves Novice Programmers' Learning". In ICER, 2011. •  Anttonen, M. et al. "Transforming the Web into a Real Application Platform: New Technologies, Emerging Trends and Missing Pieces". In SAC'11, 2011. 29
  • 30. Thank You! Questions? Comments? markku.laine@aalto.fi 30