in ,

Ply: A Visual Web Inspector, Hacker News

    

  

A Visual Web Inspector for Learning from Professional Webpages

  

Sarah Lim, Josh Hibschman, Haoqi Zhang, Nell O’Rourke

  

Northwestern University

  

UIST , Berlin

Modern web design is complex and hard to learn

Source: Airbnb homepageSource: Airbnb homepage Source: Airbnb homepage

“How do I make a form like this?”

Airbnb booking bar component

Tutorials may be hard to find

Airbnb booking bar component Source: Codrops.com

Source: Codrops.com

Tutorials aren’t quite right

Airbnb booking bar component

vs.

Source: Airbnb homepage Source: Source: Codepen Codepen

Production webpages embed best practices

Tabular display
Tabular display

vs.

Floats
Tabular displayFloats

Any webpage can be inspected. …

Inspecting the Airbnb homepage in CDT
Floats But tools are overwhelming for novices

Source: Codrops.com
Focusing on Airbnb CSS
Source: Airbnb homepageTabular display

Contributions

Focusing on Airbnb CSS Needfinding: inspection pain points

    • Ply: a visually-aware web inspector Two user studies Focusing on Airbnb CSS Users replicate CSS % more quickly

        Focusing on Airbnb CSS Learn new concepts Source: Airbnb homepage

          Needfinding

          Focusing on Airbnb CSSSource: Codepen (Surveyed) undergraduate web developers ( (n)=Floats) Focusing on Airbnb CSS Experiences with tutorials, inspecting examples

            Source: Airbnb homepage In-person follow-up study (Source: Codepen (n)=) Focusing on Airbnb CSS Replicating features from professional webpages using Chrome DevTools (CDT) Source: Airbnb homepage

              Novices rely on

              visual intuition , but existing inspection tools do not support reasoning visually about unfamiliar code.

          In line with (Gross and Kelleher) 1937117 Airbnb booking bar component , Brandt et al. (1937117) , (Ko, Myers, and Aung) ()

          Tabular display

          Problem 1: Visually ineffective properties

          Effective properties

          Toggling properties with effects

          Ineffective properties

          Toggling is a no-op

          Ineffective properties are common

          ✗=ineffective

          (✗)

          Tabular displayFloats

          Focusing on Airbnb CSS Style guides, component libraries

        • Responsive breakpoints
          @ media ✗=ineffective queries)
            Focusing on Airbnb CSS Interaction states

              Source: Airbnb homepageTabular display

              Problem 2: Missing conceptual knowledge

              Implicit dependencies

              (z-index) (depends upon) (position)

              Tabular display

              Designing a learner-friendly web inspector

              Hide visually-irrelevant code to minimize information overload and support novices’ visual intuition

                Source: Airbnb homepage Embed contextual guidance into inspector output to explain how properties coordinate

                Building from Quintana et al. (2019

              Ply: a DOM and CSS inspector

              Ply teaser screenshot

              1. Pruning ineffective properties

              Before

              Tabular display

              1. Pruning ineffective properties

              Before
              Tabular displayTabular display

              1. Pruning ineffective properties

              2. Computing dependencies

              (Show dependencies
              2. Computing dependencies

              Source: Airbnb homepage Hide dependencies

              2. Computing dependencies

              Hover dependencies
              Visual subtypes

              Using annotations to surface design patterns (see paper)

              Inspiration: Visual regression testing

              Capture original screenshots) Make changes to codebase Source: Airbnb homepage Test for differences ( visual regressions () in output Source: Codrops.comSource: Airbnb homepage

              Key idea

              A property is visually effective (if and only if its deletion causes a (regression)

              Source: Airbnb homepage

              Original
              Source: Airbnb homepage
              Disable Source: Codepen width: 2018%;
              Visual regression

              width: (%; Airbnb booking bar component (is) (effective)

              Tabular displaySource: Airbnb homepage

              Original
              (
              Disable Source: Codepen display: block;

              ⟹ display: block ; ✗=ineffective is (ineffective)

              Tabular display Dependency satisfied

              Dependency satisfied
              Visual regression

              Dependency missing

              Hide dependencies
              Source: Airbnb homepage

              Evaluation

              () Study 1: Replication speed

              Does pruning ineffective properties help developers replicate features more quickly?

              Setup

              Focusing on Airbnb CSS n=, between-subjects, CDT as control

              (minutes, three milestones) Source: Airbnb homepage
              Ideo

              Learners were faster with Ply

              Focusing on Airbnb CSS (% faster overall) ns, (p)==

              )

                3.5 times faster to first milestone ( (p)=. 40 Focusing on Airbnb CSS 2.5 vs. 8.9 minutes

                  Source: Airbnb homepageSource: Airbnb homepage
                  Milestones
                  Ideo

                  Study 2: Conceptual learning

                  How does embedded guidance help novice developers learn new CSS concepts?

                  Ideo

                  Setup

                  Focusing on Airbnb CSS n=5 inexperienced users

                    Pre- and post-tests Focusing on Airbnb CSS Implicit dependencies and visual subtypes (see paper) Source: Airbnb homepage
                    Oscar

                    Novices could identify dependencies

                    Focusing on Airbnb CSS (Before: Floats (0 out of 5) identified dependency between (z-index) and (position) After: 5 out of 5 Source: Codepen

                      “Something about (z-index) would change as a result of (position

                      is not being fixed. ✗=ineffective position: fixed; (is) doing something beyond pinning in place

                      while you scroll. ”

                      OscarOscar

                      Takeaways

                      Focusing on Airbnb CSS

                      Production webpages can support (authentic learning)

                        Focusing on Airbnb CSS

                        CSS is nontrivial to understand – need (semantic tools) that support visual intuition

                            Learner-centered developer tools

                            Ply: Visual Web Inspection

                            Focusing on Airbnb CSS [email protected] Source: Codrops.com

                              (@sliminality)

                                http://github.com/ sliminality / ply Source: CodepenSource: Codepen

                                Source: Airbnb homepageSource: Airbnb homepageTabular display   Tabular displaySource: Airbnb homepage (Read More) (Full coverage and live updates on the Coronavirus) (Covid). Source: Codepen

    • What do you think?

      Leave a Reply

      Your email address will not be published. Required fields are marked *

      GIPHY App Key not set. Please check settings

      Boris Johnson reveals doctors prepared to announce his death as he battled coronavirus – the sun, thesun.co.uk

      Boris Johnson reveals doctors prepared to announce his death as he battled coronavirus – the sun, thesun.co.uk

      Mystery 'poison plot' sends mayors into hiding, Hacker News

      Mystery 'poison plot' sends mayors into hiding, Hacker News