Automation and Customization of Rendered Web Pages Rob Miller User Interface Design Group MIT Computer Science & Artificial Intelligence Lab [email protected]http://uid.csail.mit.edu/ Joint work with Michael Bolin, Greg Little, Eric Lieberman, Marcos Ojeda, Matt Webber, Philip Rha, Tom Wilson, Darris Hupp, Ricarose
29
Embed
Automation and Customization of Rendered Web Pages Rob Miller User Interface Design Group MIT Computer Science & Artificial Intelligence Lab [email protected].
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Automation and Customization of Rendered Web Pages
MIT Computer Science and Artificial Intelligence Laboratory 2
Web Applications
• The Web is now an application platform– Many web sites are now rich applications
– As we spend more time using them, we want to customize them for our own needs
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 3
Web Automation & Customization
• Automate repetitive operations– Bookmark my latest bank statement
– Click on the nearest download mirror site
– Print or save a list of web pages
– Fill in defaults on a web form
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 4
Web Automation & Customization
• Automate repetitive operations
• Transform appearance– Change color schemes for better contrast
– Concatenate a sequence of pages into one page
– Simplify site to remove unnecessary or distracting features
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 5
Web Automation & Customization
• Automate repetitive operations
• Transform appearance
• Integrate multiple web sites (“mashups”)– Bookstore has links for New Books, Used Books, Auctions… but it
doesn’t know about books in my local library
– Real estate site has lots of data about houses for sale… but it can’t compute the length of my trip to work
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 6
Web Apps Are Inherently Open
• Web applications have built-in hooks for scripting and modification
• Desktop applications don’t have these hooks unless the developer intentionally provides an API
• So it’s possible for an end user to change a web application– Greasemonkey for Firefox, User Javascript for Opera
– But it’s not easy
HTTP requests
HTML/XML replies
HTML/CSS display
can be automated
can be parsed for data
can be modified to change appearance
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 7
Problem: It’s Hard to Customize
• Web applications are complex under the hood
• The user has to know how to programvar xpath = "//text()[(parent::" + allowedParents.join(" or parent::") + ") and " + "contains(translate(., 'HTTP', 'http'), 'http')]";var candidates = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var cand = null, i = 0; (cand = candidates.snapshotItem(i)); i++) { if (urlRegex.test(cand.nodeValue)) { var span = document.createElement("span"); var source = cand.nodeValue;
• Search for keywords in context– Some keywords are found in user interface; others are command names
• Generate a ranked list of possible interpretations– Punctuation and keyword ordering affect ranking, but are not required
• Use the highest-ranked interpretation– If ambiguous, ask the user to choose an interpretation
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 21
Keyword Commands Demo
DEMO
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 22
Advantages of Keyword Commands
• Is this natural?– Yes: this is how my 2-year-old son talks, and I can understand him– Most users are at the same level when it comes to talking to a computer in a
formal language– Our computers should become smart enough to understand us when we talk
this way
• Similar to keyword matching– e.g., web search engines
• Benefits novice users and expert users differently– Novices may use verbose, almost natural language commands– But experts can be very concise
• Keyword commands vs. point & click interfaces– More appropriate in some contexts (especially if combined with speech)– May even be faster (no hunting through menus and dialog boxes)
• Keyword commands vs. macro recording– Macro recordings don’t capture the user’s intention, but keyword programs do– Keyword programs are text, which can be easily modified and shared with
others
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 23
How Keyword Commands Work
Translatorpress feeling lucky button
Keyword command Program code
FunctionDatabase
enter
textbox string
go
url
click
button
findTextbox
keywords
textbox
findButton
button
keywords
click, press, push,
…
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 24
How Keyword Commands Work
Translatorpress feeling lucky button
Keyword command Program code
click(“feeling lucky”)
FunctionDatabase
button
click
findButton
keywords
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 25
Outline
IntroductionWeb automationKeyword commands
• Discussion– Robustness
– Security
– Resistance from web application developers
NPUC July 24, 2006
MIT Computer Science and Artificial Intelligence Laboratory 26
Robustness
• When web applications change, user customizations and mashups break– Customizations need to be robust to change
• Open question: How does the abstraction level of a customization affect its robustness?