SlideShare a Scribd company logo
1 of 30
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

Recently uploaded

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

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