Progressive
   nhancement

by Aaron Gustafson
@aarongustafson
http://slideshare.net/AaronGustafson
?
TECHNOLOGICAL
 RESTRICTIONS
Progressive EEnhancement [EECI 2011]
MCMLXXVII
  (that’s 1977)
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
HTML   CSS
fault tolerance
n. a system’s ability to continue to
operate when it encounters and
unexpected error.
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
BROWSERS
IGNORE WHAT
 THEY DON’T
UNDERSTAND
GRACEFUL
DEGRADATION
MODERN
BROWSERS
   OLDER BROWSERS
MODERN
BROWSERS
   OLDER BROWSERS
PROGRESSIVE
ENHANCEMENT
CONTENT
Progressive EEnhancement [EECI 2011]
ACCESSIBILITY
“SPECIAL NEEDS”
“SPECIAL NEEDS”
    CAN BE
  CONTEXTUAL
Progressive EEnhancement [EECI 2011]
PROGRESSIVE
GRACEFUL DEGRADATION   ENHANCEMENT
OOOH, SHINY!
PROGRESSIVE
ENHANCEMENT
 ISN’T ABOUT
  BROWSERS
BROWSERS AND
TECHNOLOGIES
 COME AND GO
DON’T LOSE
 SIGHT OF
YOUR USERS
User Experience




             BASIC                          ADVANCED

                     Browser Capabilities
User Experience




             BASIC                          ADVANCED

                     Browser Capabilities


                        Content
User Experience




                      Semantics
             BASIC                          ADVANCED

                     Browser Capabilities


                        Content
User Experience




                         Design

                      Semantics
             BASIC                          ADVANCED

                     Browser Capabilities


                        Content
User Experience




                     Interactivity

                         Design

                      Semantics
             BASIC                          ADVANCED

                     Browser Capabilities


                        Content
User Experience



                     Accessibility

                     Interactivity

                         Design

                      Semantics
             BASIC                          ADVANCED

                     Browser Capabilities


                        Content
User Experience



                          ARIA

                      JavaScript

                           CSS

                         HTML
             BASIC                          ADVANCED

                     Browser Capabilities


                     Text & HTTP
Content
Content
 is WHY
we build
websites
Clear,
well-written
prose is key.
Don’t put up
roadblocks.
Semantics
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Fault tolerance
  <p>HTML5 introduces several <em>really</em>
  useful elements and a ton of new APIs.</p>


  <p>Please fill out the form below.
  <strong>Note: all fields are required.</strong></p>


  <p>I like to work with markup languages because
  <strong>they are simple and easy to read</strong>.
  They also have that certain <i lang="fr" title="I
  don&#8217;t know what">je ne sais quoi</i>.</p>




EECI - October 2011                                     46
Progressive EEnhancement




Fault tolerance
  HTML5 introduces several really
  useful elements and a ton of new APIs.


  Please fill out the form below.
  Note: all fields are required.


  I like to work with markup languages because
  they are simple and easy to read.
  They also have that certain je ne sais quoi.




EECI - October 2011                              47
Progressive EEnhancement




Fault tolerance
  <video poster=”poster.png”>
   <source src=”video.m4v”/>
   <source src=”video.webm”/>
   <source src=”video.ogv”/>
   <img src=”poster.png” alt=””/>
   <ul>
     <li><a href="video.m4v">Download MP4</a></li>
     <li><a href="video.webm">Download WebM</a></li>
     <li><a href="video ogv">Download Ogg</a></li>
   </ul>
  </video>




EECI - October 2011                                    48
Progressive EEnhancement




Fault tolerance
  <video poster=”poster.png”>
   <source src=”video.m4v”/>
   <source src=”video.webm”/>
   <source src=”video.ogv”/>
   <img src=”poster.png” alt=””/>
   <ul>
     <li><a href="video.m4v">Download MP4</a></li>
     <li><a href="video.webm">Download WebM</a></li>
     <li><a href="video ogv">Download Ogg</a></li>
   </ul>
  </video>




EECI - October 2011                                    49
Progressive EEnhancement




Fault tolerance
  <input type="date" name="dob"/>


                      I get it!     I don’t get it :-(




EECI - October 2011                                      50
Ad-hoc
Semantics
Progressive EEnhancement




Classi cation
Progressive EEnhancement




Identi cation
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Microformats
  <section class="vcard">
   <figure>
     <img class="photo" src="aaron-gustafson.jpg" alt=""/>
   </figure>
   <h1 class="fn">Aaron Gustafson</h1>
   …
   <p>Aaron … is <b class="role">Group Manager</b> of the
     <a class="org" href="http://webstandards.org">Web
     Standards Project (WaSP)</a> ….</p>
  </section>




EECI - October 2011                                          56
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Microformats
  <body class="hentry">
   <h1 class="entry-title">
    {exp:typogrify}{title}{/exp:typogrify}
   </h1>
   <h3 class="author vcard">Posted by
     <a class="fn" href="/archives/by-author/{username}/">
    {author}</a> on
     <time class="updated"
           datetime="{entry_date format='%Y-%m-%dT%H:%i:%s'}"
           pubdate="pudate">{entry_date format='%d %F %Y'}
    </time>
     <a rel="bookmark" href="{the_permalink}">Permalink</a></h3>
   </h3>
   <div class=”entry-content”>
    {exp:typogrify}{entry_body}{/exp:typogrify}
   </div>
  </body>


EECI - October 2011                                                59
Readability
Progressive EEnhancement




EE/CI helpers
CI Microformats (helper)
hcard, rel-license
http://codeigniter.com/wiki/microformats


VZ Address ( eldtype)
hcard
https://github.com/elivz/vz_address.ee_addon


Easy Figures (plug-in)
 gure
https://github.com/easy-designs/easy_figures.eeaddon




EECI - October 2011                                    61
Design
Progressive EEnhancement




Parsing errors


                           p{
                             color: red;
                           }




EECI - October 2011                        65
Progressive EEnhancement




Parsing errors


                           p{
                             color: red;
                           }




EECI - October 2011                        65
Progressive EEnhancement




Parsing errors


                           p{
                             color: red;
                             font-weight: bold;
                           }



EECI - October 2011                               66
Progressive EEnhancement




Parsing errors


                           p{
                             color: red;
                             font-weight: bold;
                           }



EECI - October 2011                               66
Progressive EEnhancement




Parsing errors
  p {
    color: #ccc;
    color: rgba( 0, 0, 0, .5 );
  }




EECI - October 2011               67
Progressive EEnhancement




Parsing errors
  html[lang] p {
    color: #ccc;
    color: rgba( 0, 0, 0, .5 );
  }




EECI - October 2011               68
Progressive EEnhancement




Parsing errors
  @-moz-document url-prefix() {
    html[lang] p {
      color: #ccc;
      color: rgba( 0, 0, 0, .5 );
    }
  }




EECI - October 2011                 69
#intro {
  /* Basic Layout */
}

/* ... */

body[id=css-zen-garden] #intro {
 /* Advanced Layout */
}
#intro {
  /* Basic Layout */
}

/* ... */

[foo], #intro {
  /* Advanced Layout */
}
Progressive EEnhancement




Parsing errors
  @import 'not-for-IE7-or-below.css' screen;

  @media screen, print, refrigerator {
    /* IE will get these rules */
  }




EECI - October 2011                            72
Progressive EEnhancement




Organization



                           design




EECI - October 2011                 73
Progressive EEnhancement




Organization


                           type        color


                              layout


EECI - October 2011                            74
Progressive EEnhancement




Organization
  /* =Typography */
  img {
    display: block;
  }

  /* =Layout */
  @media screen {
    .frame .inner {
      border: 10px solid;
    }
  }

  /* =Color */
  .frame .inner {
    background-color: rgb(227, 222, 215);
    border-color: rgb(227, 222, 215);
  }


EECI - October 2011                         75
Progressive EEnhancement




Organization

                      type.css




                      layout.css




                      color.css




EECI - October 2011                76
Progressive EEnhancement




Organization

                      type.css




                      layout.css   main.css




                      color.css




EECI - October 2011                           76
Progressive EEnhancement




Organization
  # Setup
  RewriteEngine on
  RewriteBase /

  # rewrite css, img & js
  RewriteRule ^css/(.*).css$ /styles/$1 [L]




EECI - October 2011                             77
Progressive EEnhancement




Organization
  {embed="styles/typography"}

  @media screen {
    {embed="styles/layout-screen"}
  }

  {embed="styles/color"}




EECI - October 2011                  78
Progressive EEnhancement




Organization
  {embed="styles/reset"}
  {embed="styles/typography"}

  @media screen {
    {embed="styles/layout-screen"}
  }

  @media print {
    {embed="styles/layout-print"}
  }

  {embed="styles/color"}
  {embed="styles/effects"}




EECI - October 2011                  79
Progressive EEnhancement




Mobile- rst
  {embed="styles/reset"}
  {embed="styles/typography"}

  @media screen {
    {embed="styles/layout-mobile"}
  }

  {embed="styles/layout-tablet"}

  @media screen and (min-width:860px) {
    {embed="styles/layout-screen"}
  }

  @media print {
    {embed="styles/layout-print"}
  }

  {embed="styles/color"}
  {embed="styles/effects"}
EECI - October 2011                       80
Progressive EEnhancement




Mobile- rst
  {embed="styles/reset"}
  {embed="styles/typography"}

  @media screen {
    {embed="styles/layout-mobile"}
  }

  {embed="styles/layout-tablet"}

  @media screen and (min-width:860px) {
    {embed="styles/layout-screen"}
  }

  @media print {
    {embed="styles/layout-print"}
  }

  {embed="styles/color"}
  {embed="styles/effects"}
EECI - October 2011                       81
Progressive EEnhancement




Mobile- rst
  @media screen and (min-width:481px) {
    /* … */
  }

  @media screen and (min-width:570px) {
    /* … */
  }

  @media screen and (min-width:650px) {
    /* … */
  }

  @media screen and (min-width:700px) {
    /* … */
  }




EECI - October 2011                       82
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Monkey-patching
  <link rel="stylesheet" href="main.css"/>
  <!--[if IE 9]><link rel="stylesheet" href="ie9.css"/><![endif]-->
  <!--[if lte IE 8]><link rel="stylesheet" href="ie8.css"/><![endif]-->
  <!--[if lte IE 7]><link rel="stylesheet" href="ie7.css"/><![endif]-->
  <!--[if lte IE 6]><link rel="stylesheet" href="ie6.css"/><![endif]-->




EECI - October 2011                                                       87
Progressive EEnhancement




Monkey-patching
  @-moz-document url-prefix() {

        /* GENERATED CONTENT - FF3 doesn't allow positioning */
        #extra-mile:before {
           content: '';
        }
        #extra-mile:first-of-type:before {
           content: url(extra-mile-sign.png);
        }

  }




EECI - October 2011                                               88
Interactivity
Photo credit: spike55151
Progressive EEnhancement




Sins of our past
  <a href="javascript:someFunction();">some text</a>


  <a href="javascript:void(null);"
     onclick="someFunction();">some text</a>


  <a href="#" onclick="someFunction();">some text</a>




EECI - October 2011                                     93
Progressive EEnhancement




A minor improvement
  <a href="http://offsite.com"
     onclick="newWin( this.href ); return false;">
     some text</a>




EECI - October 2011                                  94
Photo credit: Giando
Progressive EEnhancement




Event listeners
  window.onload = handleExternalLinks;

  function handleExternalLinks()
  {
    var server = document.location.hostname;
    var anchors = document.getElementsByTagName("a");
    var i, href;
    for( i=0; i < anchors.length; i++ )
    {
      href = anchors[i].href;
      if ( href.indexOf("http://" + server) == -1 &&
            href.indexOf("https://" + server) == -1 )
      {
         // HREF is not a file on my server
         anchors[i].onclick = function()
         {
            newWin( this.href );
         };
      }
    }
  }
EECI - October 2011                                     96
Photo credit: hebedesign
Progressive EEnhancement




Listen and delegate
  document
    .getElementsByTagName( 'body' )[0]
      .onclick = clickDelegator;

  function clickDelegator( e )
  {
    e = ( e ) ? e : event;
    var el = e.target || e.srcElement;
    // external links
    if ( el.nodeName.toLowerCase() == 'a' &&
         el.getAttribute( 'rel' ) == 'external' )
    {
       newWin( el.href );
    }
  }




EECI - October 2011                                 98
Photo credit: ambery
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Anchor-include pattern
  <a data-replace="/comments/{url_title}/"
     href="/archives/{entry_date format='%Y/%m/%d'}/{url_title}/
     comments/#comments">View comments on this entry and add your
     own</a>


  {if segment_4=="comments"}
      <section id="comments" class="focal">
      {embed="inc/.comments" url_title="{url_title}"}
      </section>
  {if:else}
      {comment_loader}
  {/if}




EECI - October 2011                                             104
Progressive EEnhancement




Anchor-include pattern
  {embed="inc/.comments" url_title="{segment_3}"}




EECI - October 2011                                 105
Progressive EEnhancement




Anchor-include pattern
                                                                   https://gist.github.com/b976b67e88ffbfc9f125


  $.fn.ajaxInclude = function(){
       return this.each(function() {
            var $el               = $( this ),
                  target          = $el.data( 'target' ),
                  $targetEl       = target && $( target ) || $el,
                  methods         = [ 'append', 'replace', 'before', 'after' ],
                  ml              = methods.length,
                  method,
                  url;
            while ( ml-- ) {
                  method = methods[ ml ];
                  if ( $el.is( '[data-' + method + ']' ) ) {
                        url       = $el.data( method );
                        break;
                  }
            }
            if ( method == 'replace' ) { method += 'With'; }
            if ( url && method ) {
                  $.get( url, function( data ){
                        $el.trigger( 'ajaxInclude', [$targetEl, data] );
                        $targetEl[ method ]( data );
                  });
            }
       });
  };
EECI - October 2011                                                                                        106
Progressive EEnhancement




Anchor-include pattern
Replace:
  <a data-replace="articles/latest/fragment"
     href="...">Latest Articles</a>


Before:
  <a data-before="articles/latest/fragment"
     href="...">Latest Articles</a>


After:
  <a data-after="articles/latest/fragment"
     href="...">Latest Articles</a>



EECI - October 2011                            107
Progressive EEnhancement




Anchor-include pattern
  $("[data-append],[data-replace],”+
    “[data-after],[data-before]").ajaxInclude();




EECI - October 2011                                108
Progressive EEnhancement




Media Queries
Progressive EEnhancement




Mobile interfaces




EECI - October 2011        110
Progressive EEnhancement




Swapping content
  var trigger = 659;

  // …

  function toggleDisplay()
  {
      var width = $window.width();
      if ( showing == 'old' &&
            width <= trigger )
      {
           $old_nav.replaceWith($new_nav);
           showing = 'new';
      }
      else if ( showing == 'new' &&
                 width > trigger )
      {
           $new_nav.replaceWith($old_nav);
           showing = 'old';
      }
  }
EECI - October 2011                          111
Accessibility
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




What is it?




EECI - October 2011        116
Progressive EEnhancement




What is it?




 <button>Tweet</button>

 <a class=”button”>Tweet</a>




EECI - October 2011            116
Progressive EEnhancement




What is it?




 <button>Tweet</button>

 <a class=”button”>Tweet</a>




EECI - October 2011            116
Progressive EEnhancement




What is it?




EECI - October 2011        117
Progressive EEnhancement




What is it?




 <button>Search Mail</button>

 <div>Search Mail</div>




EECI - October 2011             117
Progressive EEnhancement




What is it?




 <button>Search Mail</button>

 <div>Search Mail</div>




EECI - October 2011             117
Progressive EEnhancement




ARIA maps the OS to the web




EECI - October 2011           118
Semantics+
Progressive EEnhancement




All the web’s a play…
  <section id="main" role="main">
   <!-- The primary content for the page would go here -->
  </section>




EECI - October 2011                                          120
Progressive EEnhancement [EECI 2011]
<header role="banner">
<nav role="navigation">
<form role="search">
<section role="main">
<footer role="contentinfo">
<nav role="navigation">
Progressive EEnhancement




Semantic comparison
                Ad-hoc            ARIA Role               HTML5

  #header, #top            banner                header (kind of)


  #main, #content          main                  none


  #extra, .sidebar         complementary, note   aside


  #footer, #bottom         contentinfo           footer


  #nav                     navigation            nav


  .hentry                  article               article


EECI - October 2011                                                 128
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




These are the droids you seek
  <span role="button">OK</span>


  <div role="alert">
   <p>Something went wrong.</p>
  </div>


  <div role="alertdialog">
   <p>Something went wrong.</p>
   <img src="x.png" alt="dismiss" role="button" />
  </div>




EECI - October 2011                                  130
Progressive EEnhancement




What is it?




 <a role=”button”>Tweet</a>
    class=”button”>Tweet</a>




EECI - October 2011            131
Progressive EEnhancement




What is it?




 <a role=”button”>Tweet</a>




EECI - October 2011           131
Progressive EEnhancement




EECI - October 2011        132
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




What’s happening?

                            B         B
                           (off)      (on)




  <span>
   <img src="bold-off.png" alt="bold" />
  </span>
  <span>
   <img src="bold-on.png" alt="bold" />
  </span>




EECI - October 2011                          134
Progressive EEnhancement




What’s happening?

                            B         B
                            (off)     (on)




  <span>
   <img src="bold-off.png" alt="not bold" />
  </span>
  <span>
   <img src="bold-on.png" alt="bold" />
  </span>




EECI - October 2011                            135
Progressive EEnhancement




What’s happening?

                            B         B
                            (off)     (on)




  <span role="button" aria-pressed="false">
   <img src="bold-off.png" alt="not bold" />
  </span>
  <span role="button" aria-pressed="true">
   <img src="bold-on.png" alt="bold" />
  </span>




EECI - October 2011                            136
Progressive EEnhancement [EECI 2011]
Progressive EEnhancement




Hey! Over here!




EECI - October 2011        138
Progressive EEnhancement




Hey! Over here!




  <input class="tweet-counter" value="140" disabled="disabled">




EECI - October 2011                                               139
Progressive EEnhancement




Hey! Over here!




  <span id="chars_left_notice" class="numeric">
   <strong id="status-field-char-counter"
         class="char-counter">140</strong>
  </span>




EECI - October 2011                               140
Progressive EEnhancement




Hey! Over here!




  <span class="tweet-counter">140
   <b class="hidden"> characters remaining</b></span>


  .hidden {
    position: absolute;
    left: −999em;
  }



EECI - October 2011                                     141
Progressive EEnhancement




Hey! Over here!




  <span class="tweet-counter">maximum of 140 characters</span>



  <span class="tweet-counter">140
   <b class="hidden"> characters remaining</b></span>




EECI - October 2011                                              142
Progressive EEnhancement




Hey! Over here!




  <span aria-live="polite" aria-atomic="true"
        class="tweet-counter">140<b class="hidden">
        characters remaining</b></span>




EECI - October 2011                                   143
Progressive EEnhancement




Hey! Over here!




EECI - October 2011        144
ARIA

JavaScript

   CSS

  HTML

Text & HTTP
AdaptiveWebDesign.info
Progressive                          nhancement
                    by Aaron Gustafson
                    More of the same:
             http://adaptivewebdesign.info
                 http://easy-designs.net
                  http://easy-reader.net
              http://aaron-gustafson.com
                    Slides available at
         http://slideshare.net/AaronGustafson
           This presentation is licensed under
                   Creative Commons
      Attribution-Noncommercial-Share Alike 3.0

                flickr Photo Credits
  flickr.com/photos/aarongustafson/galleries/72157627891060114/

                  “Usability Fail” by soopahgrover
              “ferris wheel? not yet…” by drcorneilus
            “Compost 06/08/2007” by suavehouse113
               “CORNERSTONE” by spike55151
                     “Headphone” by Giando
                “Shout, shout..” by hebedesign

More Related Content

KEY
Looking into HTML5 + CSS3
PDF
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
PPTX
Debugging with Zend Studio for Eclipse
PPTX
Extra aem development tools by Justin Edelson
PDF
Orion (What's Next conference)
PPTX
Greatest Painters in History
PDF
US Foreign Corrupt Practices Act and the Economics of Bribery by @EricPesik
PDF
Progressive Enhancement & Mobile [Funka 2012]
Looking into HTML5 + CSS3
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
Debugging with Zend Studio for Eclipse
Extra aem development tools by Justin Edelson
Orion (What's Next conference)
Greatest Painters in History
US Foreign Corrupt Practices Act and the Economics of Bribery by @EricPesik
Progressive Enhancement & Mobile [Funka 2012]

Similar to Progressive EEnhancement [EECI 2011] (20)

PDF
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
PDF
Crafting Rich Experiences with Progressive Enhancement [WebVisions 2011]
PDF
Adaptive Web Design [WebVisions Portland 2012]
PDF
Adaptive Web Design Workshop [inspire 2011]
PDF
Adaptive Web Design Workshop [Iceweb 2011]
PDF
Fundamental Progressive Enhancement [Web Builder 2.0 - 2008]
PDF
Adaptive Web Design Workshop [WebVisions NYC 2012]
PPT
Progressive enhancement 2.0 what i'd like to share to designers
PDF
Fundamental Progressive Enhancement [Web Design World - Seattle 2009]
PPTX
Introduction to Accessibility Best Practices
PPTX
Toronto HTML5 User Group Meet Up #2 – Application Development with HTML 5
PPTX
EVOLVE"13 | Maximize & Enhance | Accessibility | Kiran Kaja
PDF
Fundamental Progressive Enhancement [Web Design World Boston 2008]
PPTX
A web standards & ud approach for access (bps public)
PDF
Enhance Enhance
PDF
Real World Web Standards
PDF
Business of Front-end Web Development
PDF
Adaptive web-design-chapter-1
PPTX
Responsive web design
PDF
Web Accessibility for Web Developers
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Crafting Rich Experiences with Progressive Enhancement [WebVisions 2011]
Adaptive Web Design [WebVisions Portland 2012]
Adaptive Web Design Workshop [inspire 2011]
Adaptive Web Design Workshop [Iceweb 2011]
Fundamental Progressive Enhancement [Web Builder 2.0 - 2008]
Adaptive Web Design Workshop [WebVisions NYC 2012]
Progressive enhancement 2.0 what i'd like to share to designers
Fundamental Progressive Enhancement [Web Design World - Seattle 2009]
Introduction to Accessibility Best Practices
Toronto HTML5 User Group Meet Up #2 – Application Development with HTML 5
EVOLVE"13 | Maximize & Enhance | Accessibility | Kiran Kaja
Fundamental Progressive Enhancement [Web Design World Boston 2008]
A web standards & ud approach for access (bps public)
Enhance Enhance
Real World Web Standards
Business of Front-end Web Development
Adaptive web-design-chapter-1
Responsive web design
Web Accessibility for Web Developers
Ad

More from Aaron Gustafson (20)

PDF
Delivering Critical Information and Services [JavaScript & Friends 2021]
PDF
Adapting to Reality [Guest Lecture, March 2021]
PDF
Designing the Conversation [Beyond Tellerrand 2019]
PPTX
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
PDF
Progressive Web Apps: Where Do I Begin?
PDF
Media in the Age of PWAs [ImageCon 2019]
PDF
Adapting to Reality [Starbucks Lunch & Learn]
PDF
Conversational Semantics for the Web [CascadiaJS 2018]
PDF
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PDF
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PDF
Designing the Conversation [Concatenate 2018]
PDF
Designing the Conversation [Accessibility DC 2018]
PDF
Performance as User Experience [AEADC 2018]
PDF
The Web Should Just Work for Everyone
PDF
Performance as User Experience [AEA SEA 2018]
PDF
Performance as User Experience [An Event Apart Denver 2017]
PDF
Advanced Design Methods 1, Day 2
PDF
Advanced Design Methods 1, Day 1
PDF
Designing the Conversation [Paris Web 2017]
PDF
Exploring Adaptive Interfaces [Generate 2017]
Delivering Critical Information and Services [JavaScript & Friends 2021]
Adapting to Reality [Guest Lecture, March 2021]
Designing the Conversation [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Progressive Web Apps: Where Do I Begin?
Media in the Age of PWAs [ImageCon 2019]
Adapting to Reality [Starbucks Lunch & Learn]
Conversational Semantics for the Web [CascadiaJS 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]
Designing the Conversation [Concatenate 2018]
Designing the Conversation [Accessibility DC 2018]
Performance as User Experience [AEADC 2018]
The Web Should Just Work for Everyone
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [An Event Apart Denver 2017]
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 1
Designing the Conversation [Paris Web 2017]
Exploring Adaptive Interfaces [Generate 2017]
Ad

Recently uploaded (20)

PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
SaaS reusability assessment using machine learning techniques
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
SGT Report The Beast Plan and Cyberphysical Systems of Control
Lung cancer patients survival prediction using outlier detection and optimize...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
EIS-Webinar-Regulated-Industries-2025-08.pdf
Enhancing plagiarism detection using data pre-processing and machine learning...
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
4 layer Arch & Reference Arch of IoT.pdf
SaaS reusability assessment using machine learning techniques
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Data Virtualization in Action: Scaling APIs and Apps with FME
Improvisation in detection of pomegranate leaf disease using transfer learni...
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Basics of Cloud Computing - Cloud Ecosystem
Module 1 Introduction to Web Programming .pptx
Co-training pseudo-labeling for text classification with support vector machi...
Comparative analysis of machine learning models for fake news detection in so...
NewMind AI Weekly Chronicles – August ’25 Week IV

Progressive EEnhancement [EECI 2011]