What I brought back from Austin


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

What I brought back from Austin

  1. 1. What I brought back from Austin South by Southwest 2010
  2. 2. Some Things I'd like to share... <ul><li>iPhone Development with HTML/CSS/JavaScript </li></ul><ul><li>Web Accessibility Gone Wild </li></ul>  What Guys are Doing to Get More Girls in Tech! CSS3 HTML5
  3. 3. HTML5 <ul><ul><li>Improved Semantics through new elements </li></ul></ul><ul><ul><li>Improved Web Forms </li></ul></ul><ul><ul><li>JSTOR On HTML5 </li></ul></ul>
  4. 4. Improved Semantics: <header> <ul><li>Use <header> to surround non-navigational header content such as banners, branding, logos, h1s, etc. </li></ul><ul><li>Example: </li></ul><ul><li><header> </li></ul><ul><li>     <div id=&quot;branding&quot;> </li></ul><ul><li>         <img src=&quot;logo.gif&quot;  alt=&quot;Company X Logo&quot;  /> </li></ul><ul><li>         <h1>Company X Homepage</h1> </li></ul><ul><li>     </div> </li></ul><ul><li></header> </li></ul>
  5. 5. Improved Semantics: <footer> <ul><li>Use <footer> to surround content such as bottom site navigation links, copyright information, etc. </li></ul><ul><li>Example: </li></ul><ul><li><footer> </li></ul><ul><li>     <div=&quot;copyright&quot;>&copy; Copyright 2000-2010 JSTOR.</div> </li></ul><ul><li>     <div id=&quot;infoNav&quot; </li></ul><ul><li>         <a href=&quot;#&quot;>Contact</a> </li></ul><ul><li>         <a href=&quot;#&quot;>Privacy Policy</a> </li></ul><ul><li>         <a href=&quot;#&quot;>Site Map</a> </li></ul><ul><li>     </div> </li></ul><ul><li></footer> </li></ul>
  6. 6. Improved Semantics: <nav> <ul><li>Use <nav> to surround navigational elements that link within your site. </li></ul><ul><li>Example: </li></ul><ul><li><nav> </li></ul><ul><li>     <ul id=&quot;nav&quot;>  </li></ul><ul><li>         <li><a href=&quot;#&quot;>Product Development</a></li>  </li></ul><ul><li>         <li><a href=&quot;#&quot;>Delivery</a></li>  </li></ul><ul><li>         <li><a href=&quot;#&quot;>Shop Online</a></li>  </li></ul><ul><li>         <li><a href=&quot;#&quot;>Support</a></li>  </li></ul><ul><li>         <li><a href=&quot;#&quot;>Training &amp; Consulting</a></li>  </li></ul><ul><li>     </ul> </li></ul><ul><li></nav> </li></ul>
  7. 7. Improved Semantics: <article> <ul><li>Use <article> to surround articles, posts, etc. to delineate between site elements and content. </li></ul><ul><li>Example: </li></ul><ul><li><article> </li></ul><ul><li>     <div id=&quot;article1&quot;> </li></ul><ul><li><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tincidunt aliquet purus, eu congue neque tristique adipiscing. Nulla id nisi tortor. In vestibulum lorem vel   libero convallis facilisis commodo risus tincidunt. Nulla a commodo ligula. Nulla facilisi. Curabitur ac massa quis mi scelerisque elementum vitae sit amet velit. Vestibulum tortor nisi, faucibus a suscipit at, convallis in enim.</p> </li></ul><ul><li><p>Nulla molestie, arcu sit amet rhoncus faucibus, turpis elit venenatis turpis, id commodo justo nisl convallis ipsum. Phasellus vel mi urna, eu adipiscing purus. Etiam gravida rutrum orci. Praesent nec urna at dolor pulvinar placerat eu non ligula. Donec rhoncus metus et dui venenatis vitae ornare enim ullamcorper.</p> </li></ul><ul><li><p>Donec tempus adipiscing sagittis. Integer nulla nisi, rutrum in egestas ut, tincidunt at mi. Suspendisse ac massa id dui accumsan eleifend commodo nec elit. Etiam non urna sit amet magna ultrices laoreet. Sed sit amet nisl quis leo ullamcorper ultrices. Donec at turpis enim, ut vulputate velit.</p </li></ul><ul><li>     </div> </li></ul><ul><li></article> </li></ul>
  8. 8. Improved Semantics: <canvas> <ul><li>Use <canvas></canvas> as a drawable area, where you can define the height and width attributes and use JavaScript to illustrate within the element. </li></ul><ul><li>http://usplay.jstor.org:8090/sxsw/canvas.html </li></ul><ul><li>Mozilla Developer Center Example: </li></ul><ul><li><html>  </li></ul><ul><li><head>  </li></ul><ul><li><script type=&quot;application/x-javascript&quot;>  </li></ul><ul><li>     function draw() {  </li></ul><ul><li>        var canvas = document.getElementById(&quot;canvas&quot;);  </li></ul><ul><li>       if (canvas.getContext) {  </li></ul><ul><li>              var ctx = canvas.getContext(&quot;2d&quot;);  </li></ul><ul><li>                 ctx.fillStyle = &quot;rgb(200,0,0)&quot;;  </li></ul><ul><li>                 ctx.fillRect (10, 10, 55, 50);  </li></ul><ul><li>                 ctx.fillStyle = &quot;rgba(0, 0, 200, 0.5)&quot;;  </li></ul><ul><li>                 ctx.fillRect (30, 30, 55, 50); } }  </li></ul><ul><li></script>  </li></ul><ul><li></head>  </li></ul><ul><li>     <body onload=&quot;draw();&quot;>  </li></ul><ul><li>         <canvas id=&quot;canvas&quot; width=&quot;150&quot; height=&quot;150&quot;>  </li></ul><ul><li>         <p>This example requires a browser that supports the  </li></ul><ul><li>         <a href=&quot; http://www.w3.org/html/wg/html5/ &quot;>HTML5</a>  </li></ul><ul><li>          &lt;canvas&gt; feature.</p>  </li></ul><ul><li>     </canvas> </li></ul><ul><li></body>  </li></ul><ul><li></html> </li></ul><ul><li>The text contained within the element tags is fallback text, displayed only when the user's browser does not support the canvas element. </li></ul>
  9. 9. Cool Example of Canvas Element <ul><li>Online Drawing Tool:  http://mrdoob.com/projects/harmony/#fur </li></ul>
  10. 10. Improved Semantics: <video> <ul><li>Use video to embed various file formats for multimedia without the use of Flash.  </li></ul><ul><li>Currently, *.ogg and *.mp4 file formats are in use.  </li></ul><ul><ul><li>*.ogg is the format associated with Open Source Theora encoding </li></ul></ul><ul><ul><li>*.mp4 is the format associated with h.264 encoding, which is more heavily patented  </li></ul></ul><ul><li>Mozilla Developer Center Example: </li></ul><ul><li><video src=&quot;http://v2v.cc/~j/theora_testsuite/320x240.ogg&quot; controls> </li></ul><ul><li>   Your browser does not support the <code>video</code> element. </li></ul><ul><li></video> </li></ul><ul><li>The text contained within the element tags is fallback text, displayed only when the user's browser does not support the video element. </li></ul>
  11. 11. Improved Web Forms in HTML5 <ul><li>New values for type attribute for inputs provide a lot more out of the box functionality: </li></ul><ul><li>http://www.brucelawson.co.uk/tests/html5-forms-demo.html </li></ul>
  12. 12. JSTOR on HTML5 <ul><li>Utilizing new semantic elements for a JSTOR page, including: </li></ul><ul><ul><li><header> </li></ul></ul><ul><ul><li><footer> </li></ul></ul><ul><ul><li><nav> </li></ul></ul><ul><ul><li><article> </li></ul></ul><ul><li>http://usplay.jstor.org:8090/sxsw/index.html </li></ul>
  13. 13. CSS3 <ul><ul><li>New properties for contemporary aesthetics without images </li></ul></ul><ul><ul><li>More granular, flexible approach to specificity with new Attribute selectors </li></ul></ul><ul><ul><li>Cross-browser support  </li></ul></ul>
  14. 14. No more images: border-radius <ul><li>No more background images to achieve rounded corners!  </li></ul><ul><li>Use the following CSS properties to specify your border radius in pixels:  </li></ul><ul><ul><li>-moz-border-radius-topleft / -webkit-border-top-left-radius </li></ul></ul><ul><ul><li>-moz-border-radius-topright / -webkit-border-top-right-radius </li></ul></ul><ul><ul><li>-moz-border-radius-bottomleft / -webkit-border-bottom-left-radius </li></ul></ul><ul><ul><li>-moz-border-radius-bottomright / -webkit-border-bottom-right-radius </li></ul></ul><ul><li>How it's used at JSTOR: </li></ul><ul><li>#tagsContainer {  </li></ul><ul><li>  width: 300px;  </li></ul><ul><li>  min-height: 100px;  </li></ul><ul><li>  margin: 10px 0 0 10px;  </li></ul><ul><li>  padding-bottom: 10px;  </li></ul><ul><li>  background: #fff;  </li></ul><ul><li>  border: 2px solid #57788c;  </li></ul><ul><li>  -moz-border-radius-topleft: 25px; -webkit-border-top-left-radius: 25px;  </li></ul><ul><li>  -moz-border-radius-topright: 25px; -webkit-border-top-right-radius: 25px;  </li></ul><ul><li>  -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px;  </li></ul><ul><li>  -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px;  </li></ul><ul><li>  } </li></ul>
  15. 15. No more images: text-shadow <ul><li>Although this was proposed in CSS2, it is finally receiving widespread support with CSS3 implementation: </li></ul><ul><li>Examples from CSS3Preview & http://www.howtocreate.co.uk/ </li></ul><ul><li>p {text-shadow : 0 0 4px white , 0 -5px 4px #FFFF33 , 2px -10px 6px #FFDD33 , -2px -15px 11px #FF8800 , 2px -25px 18px #FF2200;} </li></ul><ul><ul><li>p {color: white; background-color: white; text-shadow: black 2px 2px 5px;} </li></ul></ul>
  16. 16. No more images: Opacity <ul><li>Achieve multiple opacities of a single hue with CSS Opacity. </li></ul><ul><li>Example from CSS3: </li></ul><ul><li><div style=&quot;  background: rgb(255, 0, 0) ; opacity: 0.2; &quot;></div> <div style=&quot;  background: rgb(255, 0, 0) ; opacity: 0.4; &quot;></div> <div style=&quot; background: rgb(255, 0, 0) ; opacity: 0.6; &quot;></div> <div style=&quot; background: rgb(255, 0, 0) ; opacity: 0.8; &quot;></div> <div style=&quot; background: rgb(255, 0, 0) ; opacity: 1; &quot;></div> </li></ul>
  17. 17. Improved Specificity with Attribute Selectors <ul><li>Leveraging elements' attributes to gain more flexibility in CSS specificity  </li></ul><ul><li>Using id as en example, we can: </li></ul><ul><li>id^=&quot;ma&quot; </li></ul><ul><li>     Target elements whose id begins with &quot;ma&quot; </li></ul><ul><li>id$=&quot;nt&quot; </li></ul><ul><li>     Target elements whose id ends with &quot;nt&quot; </li></ul><ul><li>id*=&quot;ain&quot; </li></ul><ul><li>     Target elements whose id contains &quot;ain&quot; </li></ul><ul><li>For instance, any of these selectors could be used to target <div id=&quot;mainContent&quot;>  </li></ul><ul><li>Only the second would target <div id=&quot;content&quot;> </li></ul><ul><li>The first and third would both target <div id=&quot;main&quot;>  </li></ul>
  18. 18. How does your Browser Stack Up? <ul><li>Cool Test for CSS3 Selector Performance: </li></ul><ul><li>http://tools.css3.info/selectors-test/test.html </li></ul><ul><li>Other Resources for CSS3 Support and Compliance Info: </li></ul><ul><li>QuirksMode CSS Compliance Chart </li></ul><ul><li>http://www.quirksmode.org/css/contents.html </li></ul><ul><li>Smashing Magazine (linked article has cutting edge CSS3 applications) </li></ul><ul><li>http://www.smashingmagazine.com/2010/01/25/the-new-hotness-using-css3-visual-effects/ </li></ul><ul><li>HTML5 and CSS3 Support Chart </li></ul><ul><li>http://www.findmebyip.com/litmus/#target-selector </li></ul>
  19. 19. Hold the Cocoa: iPhone Development with only HTML, CSS, and JavaScript <ul><li>Web Apps as a New Way of Mobile Development </li></ul><ul><ul><li>Utilizing commonly known languages to rapidly develop, test, and launch mobile apps  </li></ul></ul><ul><ul><li>HTML Provides the structural layer </li></ul></ul><ul><ul><li>CSS Provides the presentational layer  </li></ul></ul><ul><ul><li>JavaScript provides the behavior layer </li></ul></ul><ul><ul><ul><li>JQTouch  </li></ul></ul></ul>
  20. 20. JQTouch jQuery Library for iPhone <ul><li>http://www.jqtouch.com/ </li></ul><ul><ul><li>  jQuery based JavaScript library optimized for iPhone display </li></ul></ul><ul><ul><li>  Link to jQTouch .js file and .css file as well as the minified jQuery library in the head of the document </li></ul></ul>
  21. 21. JQTouch CSS Default Themes <ul><li>Three nice themes to quickly apply to your app: </li></ul><ul><li>Edge to Edge                     Plastic                 Metal </li></ul>
  22. 22. JQTouch Functions ready for User <ul><li>A wide variety of functions for commonly desired mobile app functionality are available in JQTouch out of the box, including: </li></ul><ul><ul><li>User Interface layouts </li></ul></ul><ul><ul><li>Animations </li></ul></ul><ul><ul><li>Callback events </li></ul></ul><ul><ul><li>Extensions  </li></ul></ul>
  23. 23. jQTouch User Interface Functionality <ul><li>Lists                                            Web Forms </li></ul>
  24. 24. jQTouch Animations Functionality <ul><li>Cool animations to switch between screens that mimic native app behavior, including: </li></ul><ul><ul><li>Slide </li></ul></ul><ul><ul><li>Slide Up </li></ul></ul><ul><ul><li>Dissolve </li></ul></ul><ul><ul><li>Fade </li></ul></ul><ul><ul><li>Flip  </li></ul></ul><ul><ul><li>Pop </li></ul></ul><ul><ul><li>Swap </li></ul></ul><ul><ul><li>Cube </li></ul></ul>
  25. 25. jQTouch Extensions <ul><li>Easy ways to extend your web app to be more like native apps: </li></ul><ul><ul><li>Geolocation </li></ul></ul><ul><ul><li>Offline utility - preserves data from web app for later use without requiring network connectivity </li></ul></ul><ul><ul><li>Floaty bar - nice information bubble which floats from the top of the interface to guide users </li></ul></ul>
  26. 26. Test your App with TestiPhone <ul><li>Once you've utilized all these handy jQTouch features and completed development on your app, you can test it on your phone or online by going to http://testiphone.com and simply entering your URL in the test bar.  </li></ul>
  27. 27. Pros and Cons of Native and Web Apps Native App Web App Cosmetics Functionality Ease of Development Ease of Testing Ease of Distribution Ease of Payment
  28. 28. Web Accessibility Gone Wild <ul><li>By Jared Smith, WebAIM </li></ul><ul><ul><li>The myth of the &quot;Accessible Website&quot; </li></ul></ul><ul><ul><li>Can you have too much Accessibility? </li></ul></ul><ul><ul><li>Build your site once, in an Accessible Manner </li></ul></ul><ul><ul><li>Alt Text Usage </li></ul></ul><ul><ul><li>CAPTCHA Usage </li></ul></ul><ul><ul><li>The more help text, the less accessible the site </li></ul></ul><ul><ul><li>Screenreaders do JavaScript </li></ul></ul><ul><ul><li>Bullet-proof Web Design </li></ul></ul><ul><ul><li>Balance Cognitive Load and Functionality </li></ul></ul><ul><ul><li>Don't sweat the small stuff  </li></ul></ul>
  29. 29. The Myth of The Accessible Website <ul><ul><li>Doing away with the idea that a site is either &quot;Accessible&quot; or &quot;Inaccessible&quot;  </li></ul></ul><ul><ul><ul><li>Always improvements to be made on any site </li></ul></ul></ul><ul><ul><ul><li>Constantly, actively seeking to improve accessibility </li></ul></ul></ul><ul><ul><li>  Accessibility is about more than blindness </li></ul></ul><ul><ul><ul><li>Other types of impairments that get overlooked: </li></ul></ul></ul><ul><ul><ul><ul><li>Mobility impairments </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cognitive impairments </li></ul></ul></ul></ul><ul><ul><li>Standards compliant    ≠  Accessible </li></ul></ul><ul><ul><ul><li>Passing an automated test doesn't mean your site is accessible </li></ul></ul></ul><ul><ul><ul><li>Holistic, human approach to accessibility, ideally including user testing </li></ul></ul></ul><ul><ul><li>Accessible    ≠  Ugly </li></ul></ul><ul><ul><ul><li>An Accessible, Ugly website is useless </li></ul></ul></ul><ul><ul><ul><li>Strive to make beautiful, semantic sites and optimize for Accessibility  </li></ul></ul></ul>
  30. 30. Can you have too much Accessibility? <ul><ul><li>Check to see if superfluous accessibility tools are signaling that your site needs an entirely different implementation  </li></ul></ul><ul><ul><ul><li>Too many workaround and accommodations indicates poor design </li></ul></ul></ul><ul><ul><li>Partial or incorrect accessibility can be worse than no accessibility at all </li></ul></ul><ul><ul><ul><li>Making minor changes or partial optimizations can make things even worse </li></ul></ul></ul><ul><ul><ul><ul><li>i.e. poor accesskey implementation  </li></ul></ul></ul></ul><ul><ul><li>Monitor at what point the accessibility measures taken become counterintuitive </li></ul></ul><ul><ul><ul><li>At what point have you made your content more difficult to consume? </li></ul></ul></ul>
  31. 31. Build it Once, Build it Accessible <ul><li>If you're building an extra version of your site to be &quot;Accessible&quot;, you're doing it wrong.  </li></ul><ul><li>The design and implementation should be reevaluated if this seems necessary. </li></ul>
  32. 32. Proper Use of Alt Text <ul><ul><li>Represent both the content & function of image </li></ul></ul><ul><ul><li>Keep in mind how browsers render alt text differently </li></ul></ul><ul><ul><ul><li>If your image doesn't load, this text may look quite different cross-browser </li></ul></ul></ul><ul><ul><li>When in doubt, focus on content & functionality </li></ul></ul><ul><ul><ul><li>Avoid extraneous details in the alt text where it doesn't provide great benefit </li></ul></ul></ul><ul><ul><li>Images as the sole content within a link must have alt text </li></ul></ul><ul><ul><ul><li>Otherwise, screen reader users will have less information about what they are clicking on  </li></ul></ul></ul><ul><ul><li>Avoid redundant alt text </li></ul></ul><ul><ul><ul><li>Often, phrases like &quot;Image of&quot; or &quot;Photo of&quot; provide little descriptive value to the user </li></ul></ul></ul>
  33. 33. Proper use of CAPTCHA <ul><ul><li>Overkill for the vast majority of situations </li></ul></ul><ul><ul><ul><li>Very few cases warrant this level of security  </li></ul></ul></ul><ul><ul><ul><li>Weigh benefit of security with huge accessibility costs </li></ul></ul></ul><ul><ul><li>reCaptcha as best option when a captcha is essential for security </li></ul></ul><ul><ul><ul><li>Best available option for situations where CAPTCHA technology is essential  </li></ul></ul></ul><ul><ul><ul><li>http://recaptcha.net/ </li></ul></ul></ul>
  34. 34. The More Help Text, The Less Accessible <ul><li>If you have to explain it, you probably did it wrong... </li></ul>Help text complicates and interface which was likely already too complex if it seemed to need help text. There is an inverse correlation between the inherent usability of a webpage and the amount of help text required.
  35. 35. Screenreaders do JavaScript, Too! <ul><li>90% of screen reader users have JavaScript enabled </li></ul><ul><li>Keeping this in mind, you should not plan on the non-JavaScript version being the &quot;Accessible&quot; version. </li></ul><ul><li>Accessibility optimizations should be integrated with your development, not parallel to it.  </li></ul>
  36. 36. Bullet-proof Web Design <ul><ul><li>Accept that you cannot control presentation beyond user preferences </li></ul></ul><ul><ul><li>Do things to optimize experience regardless  </li></ul></ul><ul><ul><ul><li>Avoid very short or long line lengths </li></ul></ul></ul><ul><ul><ul><li>Focus on content  </li></ul></ul></ul><ul><ul><ul><li>Semantic structure  </li></ul></ul></ul><ul><ul><ul><li>Alt text on images </li></ul></ul></ul><ul><ul><ul><li>Logical ordering of content </li></ul></ul></ul>
  37. 37. Balance Cognitive Load & Functionality <ul><li>Striking a happy balance between providing enough functionality and overwhelming the user </li></ul>
  38. 38. Don't Sweat the Small Stuff <ul><ul><li>Use <acronym> and <abbr> only for the first instance of each term </li></ul></ul><ul><ul><li>Use <fieldset> and <legend> even where not critical visually to ensure clarity of forms </li></ul></ul>Bear in mind that screenreader users are comfortable in the environment, and things like overuse of definition tags may only annoy them...
  39. 39.   What Guys are Doing to Get More Girls in Tech! <ul><li>  A panel discussing approaches men in the tech community can use to draw more women into the field.  </li></ul>Kailya Hamlin, Author of She's Geeky David Eaves, Entrepreneur Kevin Marks, VP Web Services @ BT Obie Fernandez, CEO & Founder @ Hashrocket Brandon Sheets, New Media Consultant @ tenpeach
  40. 40. Getting More Women Into the Field <ul><ul><li>Encouraging girls to get interested in math, science, and technology at young ages. </li></ul></ul><ul><ul><li>Encouraging women to apply for jobs </li></ul></ul><ul><ul><li>Helping to put an end to resumé skew </li></ul></ul><ul><ul><ul><li>Study showed that women tend to underestimate their skill level when applying to tech jobs, whereas men tend to overestimate their skill level, which results in skewed hiring. </li></ul></ul></ul>
  41. 41. Keeping Women in the Field <ul><ul><li>Maintaining Open Source communities that are welcoming to women </li></ul></ul><ul><ul><ul><li>Obie Fernandez spoke of a recent shift in the Rails community making it hostile to many, and to women in particular. He contrasted this with the Ruby community, known for being hospitable and welcoming to all talented individuals... </li></ul></ul></ul><ul><ul><li>Avoiding creating or participating in inappropriate or hostile environments </li></ul></ul><ul><ul><ul><li>CouchDB presentation at Golden Gate Ruby Conference </li></ul></ul></ul><ul><ul><ul><ul><li>Presentation featuring inappropriate (pornographic) content makes clear statements about the environment in which that community operates, forcing out female talent and gaining a bad reputation.  </li></ul></ul></ul></ul><ul><ul><li>Be the change you wish to see </li></ul></ul><ul><ul><ul><li>If you see a tech community you believe in failing to live up to these standards, advocate for change </li></ul></ul></ul>
  42. 42. THANKS!