AUTOMATIC VISUAL VERIFICATION OF LAYOUT FAILURES IN RESPONSIVELY - - PowerPoint PPT Presentation

automatic visual verification of layout failures in
SMART_READER_LITE
LIVE PREVIEW

AUTOMATIC VISUAL VERIFICATION OF LAYOUT FAILURES IN RESPONSIVELY - - PowerPoint PPT Presentation

AUTOMATIC VISUAL VERIFICATION OF LAYOUT FAILURES IN RESPONSIVELY DESIGNED WEB PAGES Authors: University of Sheffield Ibrahim Althomali Allegheny College Gregory Kapfhammer University of Sheffield Phil McMinn Presented by: Ibrahim


slide-1
SLIDE 1

AUTOMATIC VISUAL VERIFICATION OF LAYOUT FAILURES IN RESPONSIVELY DESIGNED WEB PAGES

Authors: Ibrahim Althomali Gregory Kapfhammer Phil McMinn University of Sheffield Allegheny College University of Sheffield Presented by: Ibrahim Althomali Contact: imalthomali1@sheffield.ac.uk

slide-2
SLIDE 2

IMPORTANCE OF A WEB PAGE LAYOUT

2

Credibility User Loyalty Confidence in Services

  • x

Web Page

Web page design and instant credibility are statistically linked. Robins and Holmes IP&M 2008 Willingness to visit the web page again is linked the design. Cyr et al. I&M 2006

slide-3
SLIDE 3

LAYOUT FAILURE EXAMPLES

3

slide-4
SLIDE 4

WHAT IS A WEB PAGE?

<!DOCTYPE html> <html> <head> <title>ICST 2019</title> </head> <body> <h1>Xi’an China</h1> </body> </html>

4

body{background-color: black;} h1{color: blue;} a:link{color: blue; } a:visited{color: green;} a:hover {color: red;} a:active {color: yellow;} <script> window.onload = function() { var element = document.createElement("script"); element.src = “main.js"; document.body.appendChild(element); }; </script>

HTML CSS JavaScript

Web Page

  • x

Web Page

slide-5
SLIDE 5

INFLUENCE ON THE LAYOUT

<!DOCTYPE html> <html> <head> <title>ICST 2019</title> </head> <body> <h1>Xi’an China</h1> </body> </html>

5

body{background-color: black;} h1{color: blue;} a:link{color: blue; } a:visited{color: green;} a:hover {color: red;} a:active {color: yellow;} <script> window.onload = function() { var element = document.createElement("script"); element.src = “main.js"; document.body.appendChild(element); }; </script>

HTML CSS JavaScript

Web Page

  • x

Web Page

9.36% 90.64% 10.3% 5.9% 74.3% 0.16% 7.71% 1.74% 79.7% 4.0% 1.6% 10.2% 3.4%

English - Mandarin - Hindi - Spanish - Arabic

slide-6
SLIDE 6

MANY DISPLAYS SIZES

6

Web Page

  • x

Web Page

  • x

Web Page Higher 1920x1080 1366x768 1280x1024 1280x800 1024x768 Lower 32.9% 18% 34% 4% 3% 2% 6.1%

  • x

Web Page

  • x

Web Page

slide-7
SLIDE 7
  • x

Web Page

  • x

Web Page

RESPONSIVE WEB DESIGN

7

  • x

Web Page

$ $

slide-8
SLIDE 8

RESPONSIVE WEB DESIGN

8

  • Percentage for image width.
  • Text size set to viewport width.
  • Change images using pictures tag.
  • Media queries.
  • CSS frameworks:
  • Bootstrap.
  • Foundation.
  • x

Web Page Addresses the challenge of presenting the web page at different viewport widths

slide-9
SLIDE 9

RESPONSIVE WEB IS GREAT BUT… TOO MANY DISPLAYS TO TEST

9

  • x

Web Page

$ $

  • x

Web Page

  • x

Web Page Automated Detection Tool Responsive Layout Failures

slide-10
SLIDE 10

REDECHECK

  • ReDeCheck:
  • Opens a browser.
  • Loads the target web page.
  • Searches a range of sequential viewport widths.
  • Captures relationships between elements.
  • Determine any relationship discrepancies.
  • Report different types of layout failures.

10

  • x

Web Page

  • x

Web Page

slide-11
SLIDE 11

SOME TYPES OF RESPONSIVE LAYOUT FAILURES

  • Element Collision:
  • Viewport width gets smaller until elements overlap each other.
  • Element Protrusion:
  • Elements that overflow their container.
  • Viewport Protrusion:
  • Elements that overflow the main body element.
  • x
  • x
  • x
  • x
  • x
  • x

11

slide-12
SLIDE 12

ELEMENT COLLISION

12

  • x

Web Page

  • x

Web Page

slide-13
SLIDE 13

ELEMENT PROTRUSION

13

  • x

Web Page

  • x

Web Page

slide-14
SLIDE 14

VIEWPORT PROTRUSION

14

  • x

Web Page

  • x

Web Page

slide-15
SLIDE 15

REDECHECK - OUTPUT

  • Type of responsive layout failure.
  • Failure Range:
  • Viewport range where the failure was detected.
  • Problematic HTML Elements:
  • XPath of the elements.

Type: Element Collision Range: 320-767 /HTML/BODY/DIV[2] /HTML/BODY/DIV Type: Viewport Protrusion Range: 320 - 710 /HTML/BODY /HTML/BODY/MAIN/DIV/DIV/DIV/UL/LI/IMG

15

slide-16
SLIDE 16

OBSERVABLE LAYOUT FAILURE

16

933 px 966 px

Observable: detectable at the DOM coordinates level and visible when rendered by the browser.

slide-17
SLIDE 17

NON-OBSERVABLE LAYOUT FAILURE

17

934 px 966 px

Non-Observable: detectable at the DOM coordinates level with no apparent rendering issues.

slide-18
SLIDE 18

THE PROBLEM

  • DOM based detection of layout failures is not enough.
  • Developer must do a manual visual verification of the reported failures:
  • Set the right viewport size.
  • Scroll to problematic elements.
  • Visually verify the issue.
  • Observable Failures:
  • Apparent layout issue.
  • Non-observable Failures:
  • DOM level issues.

18

  • x
  • x
  • x
  • x
slide-19
SLIDE 19

THE PROBLEM

  • DOM based detection of layout failures is not enough.
  • Developer must do a manual visual verification of the reported failures:
  • Set the right viewport size.
  • Scroll to problematic elements.
  • Visually verify the issue.
  • Observable Failures:
  • Apparent layout issue.
  • Non-observable Failures:
  • DOM level issues.

19

  • x
  • x
  • x
  • x
slide-20
SLIDE 20

PROPOSED SOLUTION

  • Determine area requiring analysis.
  • Areas of Concern (AOC)
  • Check pixels of problematic area.
  • Use the opacity property to reveal layers.
  • Take snapshots.
  • Analyze snapshots for pixel differences.

20

  • x
slide-21
SLIDE 21

PROPOSED SOLUTION

  • Determine area requiring analysis.
  • Areas of Concern (AOC)
  • Check pixels of problematic area.
  • Use the opacity property to reveal layers.
  • Take snapshots.
  • Analyze snapshots for pixel differences.

21

  • x
slide-22
SLIDE 22

OBSERVABLE FAILURE EXAMPLE

  • CurrentViewport
  • 933 px
  • Failure Type
  • Element Collision
  • Failure Range
  • 769-933 px

22

slide-23
SLIDE 23

NON-OBSERVABLE FAILURE EXAMPLE

  • CurrentViewport
  • 934 px
  • Failure Type
  • Element Collision
  • Failure Range
  • 934-965 px

23

slide-24
SLIDE 24

COLLISION

  • 1. Only check where both element intersect.
  • 2. Snapshot 1 - Background
  • 3. Snapshot 2 - Gray element
  • 4. Snapshot 3 - Black element
  • 5. For each pixel in the three images

1. If Snapshot 2 & Snapshot 3 != Background ≠ & ≠

  • Observable layout failure

24

  • x

Web Page

slide-25
SLIDE 25

PROTRUSION

  • 1. Check for collision

≠ & ≠

  • 2. If observable collision

1. Check the area protruding 2. Snapshot 1 - Background 3. Snapshot 2 - Protruding element 4. If Snapshot 2 ≠ Background ≠

  • Observable layout failure

25

  • x

Web Page

  • x

Web Page

slide-26
SLIDE 26

RESEARCH QUESTIONS

  • RQ1: Can we automatically distinguish non-observable failures?
  • Compare to manual classifications.
  • RQ2: Which viewport has the best chance of revealing an observable failure?
  • Compare to manual classification.
  • RQ3: How long does it take to verify a layout failure?

26

slide-27
SLIDE 27

MANUAL RESULTS

27

5 10 15 20 25 30 35 40 Element Collision Element Protrusion Viewport Protrusion

Number of Failures Types of Failures

Manual Classifications

Observable Non-observable

117 Responsive Layout Failures 20 Web Pages Walsh et al. ISSTA 2017

slide-28
SLIDE 28

RQ1: CAN WE AUTOMATICALLY DISTINGUISH NON-OBSERVABLE FAILURES?

  • Compared to manual…
  • Minimum of the failure range.
  • Agreed with manual 87.2%
  • Middle of the failure range.
  • Agreed with manual 82.9%
  • Maximum of the failure range.
  • Agreed with manual 77.8%

28

5 10 15 20 25 30 35 40 Element Collision Element Protrusion Viewport Protrusion

Number of Failures Type of Failure

Manual Classifications

Observable Non-observable

slide-29
SLIDE 29

RQ2: WHICH VIEWPORT HAS THE BEST CHANCE OF REVEALING AN OBSERVABLE FAILURE?

29

10 20 30 40 50 60 70 80 90 Minimum Middle Maximum Manual

Number of Failures Inspection

Results of Inspecting Three Points of the Failure Range

Observable Non-observable

Classifications change depending on viewport More failures are observable at the lower range

slide-30
SLIDE 30

RQ3: HOW LONG DOES IT TAKE TO VERIFY A LAYOUT FAILURE?

  • How long does it take to verify a layout failure?
  • Carried out the experiment 30 times.
  • 0.91 Seconds - mean
  • 0.80 Seconds - median
  • Excluded
  • Time to load the web page
  • Resize the browser

30

slide-31
SLIDE 31

SUMMARY

31