AaronGustafson’s avatarAaronGustafson’s Twitter Archive—№ 17,460

                          1. …in reply to @windowsdev
                            @windowsdev There are a bunch of great resources for getting started with building PWAs. From the ServiceWorker side, I highly recommend @adactio’s Going Offline from @abookapart: abookapart.com/products/going-offline @grigs’ Progressive Web Apps is out next month: abookapart.com/products/progressive-web-apps
                        1. …in reply to @AaronGustafson
                      1. …in reply to @AaronGustafson
                        @windowsdev @adactio @abookapart @grigs In terms of pre-work, the first thing to do is make sure you are starting with a great web experience.
                    1. …in reply to @AaronGustafson
                      @windowsdev @adactio @abookapart @grigs PWAs are an enhancement. If you don’t have something that works well to begin with, sprinkling in some PWA features isn’t going to magically make it better.
                  1. …in reply to @AaronGustafson
                    @windowsdev @adactio @abookapart @grigs Great web experiences are built on a solid, universally accessible foundation.
                1. …in reply to @AaronGustafson
                  @windowsdev @adactio @abookapart @grigs First things first, the experience needs to be focused. Remove cruft, distractions, and anything that’s ancillary to a user completing the task they came to your site to accomplish.
              1. …in reply to @AaronGustafson
                @windowsdev @adactio @abookapart @grigs Make sure your copy—text, form labels, buttons, etc.—is clear, and straightforward. Avoid jargon and assuming too much about your user’s level of domain knowledge.
            1. …in reply to @AaronGustafson
              @windowsdev @adactio @abookapart @grigs From there, it’s crucial that every level of technology you use supports and enhances the core experience.
          1. …in reply to @AaronGustafson
            @windowsdev @adactio @abookapart @grigs For HTML, that means choosing semantic elements (e.g., paragraphs, lists, etc.) that convey the meaning of your words. It also means choosing the right form controls, like using buttons instead of divs and anchors.
        1. …in reply to @AaronGustafson
          @windowsdev @adactio @abookapart @grigs We should strive to represent our interfaces with the fewest dependencies possible. So if you can support an experience, like being able to submit a form, in HTML alone, do it.
      1. …in reply to @AaronGustafson
        @windowsdev @adactio @abookapart @grigs You can always style the button to look different or intercept the form submission and handle it in JavaScript, but it’s imperative that the experience be usable even in the absence of your styles and scripts.
    1. …in reply to @AaronGustafson
      @windowsdev @adactio @abookapart @grigs When it comes to CSS, make sure your colors provide adequate contrast. And don’t rely on color alone to convey information. You should also keep font sizes flexible so users can bump them up or down as needed.
  1. …in reply to @AaronGustafson
    @windowsdev @adactio @abookapart @grigs When it comes to JavaScript, the biggest thing is to build your scripts such that they enhance the underlying experience, but remain optional.
    1. …in reply to @AaronGustafson
      @windowsdev @adactio @abookapart @grigs This can be a difficult concept to reconcile in today’s #JSallthethings climate, but if you are concerned about your product working as often as humanly possible, it’s critical to adopt this approach.