Rslidy: Lightweight, Accessible, and Responsive HTML5 Slide Decks

Patrick Hipp
Master's Thesis Defence
Graz University of Technology

Thu 28 Oct 2021

GitHub:
https://github.com/tugraz-isds/rslidy/

Slides:
https://shudouken.github.io/rslidy/

The Origins of Slideshows

PowerPoint Splashscreen
Splash screen and example slide of PowerPoint 1.0.
Screenshot made by the author using emulation.
One slide from an example presentation included in PowerPoint 1.0.
Example slide of PowerPoint 1.0.
Screenshot made by the author using emulation.

Modern Challenges

Adapted from RespVis example
https://respvis.netlify.app/examples/grouped-bar.html

Based on data from StatCounter
https://gs.statcounter.com/browser-market-share/

Web Fundamentals

The Document Object Model (DOM) can be displayed as a tree structure, called the DOM tree. Standardised cross-browser JavaScript functions are provided to access and modify
      specific objects and their attributes.
The Document Object Model (DOM) can be displayed as a tree structure, called the DOM tree.
Diagram created by the author in R.

Front-End Web Technologies

SCSS is a pre-processor syntax which is converted to CSS. This image shows some of the differences between SCSS and CSS.
SCSS allows for shared variables and mixins.
Screenshot taken by the author.
Typescript transpiles to JavaScript, but allows for types and error detection, among other features.
TypeScript brings a type system to JavaScript.
Screenshot taken by the author.

Slidy & Slidy2

Slidy2 features an auto-generated table of contents.
Slidy2 features an auto-generated table of contents.
Screenshot taken from Slidy2.

The Four Main Classes of Modern Slide Decks

  1. Text-Based slide decks.
  2. JavaScript-Based slide decks.
  3. Hosted slide decks.
  4. Responsive slide decks.

1. Text-Based Slide Decks

Slidifier

Slidifier
Screenshot taken from Slidifier.

2. JavaScript-Based Slide Decks

Inspire.js

Inspire.js
Screenshot taken from Inspire.js.

3. Hosted Slide Decks

Beautiful.ai

Beautiful.ai offers tools for creating and editing charts and diagrams.
Beautiful.ai offers tools for creating charts.
Screencapture taken from Beautiful.ai.

4. Responsive Slide Decks

Scrolldeck.js

Scrolldeck.js
Scrolldeck.js displaying two images with parallax scrolling.
Screenshot taken from Scrolldeck.js.

Rslidy

Rslidy File Sizes
File Size Minified Size Minified and Gzipped Size
rslidy.js 133,306 bytes 70,223 bytes 15,069 bytes
rslidy.css 26,086 bytes 17,270 bytes 4,362 bytes

Overview of Rslidy's Features

Image Viewer

A graph showing Rslidy's modules and their dependencies.
Rslidy is comprised of several modules, whose dependencies are illustrated here.
Diagram created by the author in R.

Settings

Accessibility

Gesture Support

A graphic describing the tilt and tip gestures available in Rslidy.
Tilt and tip gestures can be used for navigation (in addition to swipe and tap gestures).
Illustration made by the author using Inkscape.

Math Equations using MathJax

When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are \[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\]

Rendered from this HTML snippet:

<p>
  When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
  \[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\]
</p>

Source Code Highlighting using Prism.js

<body>
  <section>
    <h1>Source Code Highlighting!</h1>
    <h2>Or through third-party tools.</h2>
  </section>
</body>

Inline code highlighting background-color: rgba(0, 0, 0, 0.9); is also possible.

Including Live Code for Interactive Content

Testing

The image shows the setup of a thinking-aloud test, which was performed to improve Rslidy's UI.
The thinking aloud test was captured both by external camera and screen recording.
A mirror was used to capture the facial expressions of the participant.
Photograph from Droisner Angelika and Korotaj Ana (and used under the terms of a Creative Commons Attribution 4.0 License).
The face of the test user has been deliberately blurred.

Future Work

Thanks for your attention!

Questions?