Session 100 usable by everybody design principles for accessibility on mac os x

835 views

Published on

Universal Design

Published in: Design, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
835
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Session 100 usable by everybody design principles for accessibility on mac os x

  1. 1. Design principles for accessibility on Mac OS X Gregory Hughes, Ph.D. Software Engineer Usable by Everybody 2
  2. 2. What Is Universal Design? 3
  3. 3. Three Main Focus Areas 4
  4. 4. Yellow Dog Productions · Digital Vision · Getty Images 5
  5. 5. Focus Areas Users 6
  6. 6. 7
  7. 7. Technologies Focus Areas Users 8
  8. 8. 9
  9. 9. DevelopersTechnologies Focus Areas Users 10
  10. 10. DevelopersTechnologies Focus Areas Users 11
  11. 11. 10 MillionAmericans are visually impaired www.afb.org/info_documents.asp?collectionid=15 [Mar 25, 2008] 12
  12. 12. S. Kochkin. Marketrak vii: Hearing loss population tops 31 million. The Hearing Review, (2005), July 2005. 31 MillionAmericans are hearing impaired 13
  13. 13. 12 MillionAmericans have a learning disability C. Smith and L. Strick. Learning Disabilities: A to Z. The Free Press, 1997. 14
  14. 14. 50 Million1 in 5Americans have a disability http://www.census.gov/Press-Release/www/releases/archives/facts_for_features_special_editions/001823.html 15
  15. 15. User Considerations Visual Auditory CognitivePhysical 16
  16. 16. DevelopersTechnologies Focus Areas Users 17
  17. 17. DevelopersTechnologies Focus Areas Users 18
  18. 18. 19
  19. 19. 20
  20. 20. 21
  21. 21. Talking iPods 22
  22. 22. VoiceOver 5 YearsMacs with VoiceOver Millions 23
  23. 23. ?>>>> 24
  24. 24. DevelopersTechnologies Focus Areas Users 25
  25. 25. DevelopersTechnologies Focus Areas Users 26
  26. 26. Universal Design Considerations Visual Auditory CognitivePhysical 27
  27. 27. Implementing Universal Design Perceivable Operable Understandable Robust 28
  28. 28. How to Implement Universal Design? 29
  29. 29. Perceivable Visual Considerations 30
  30. 30. 31
  31. 31. Resolution •Usable at low resolutions ■ 1024x768 recommended ■ Aids users with visual impairments ■ Aids elderly users ■ Helps when displaying on a projector 32
  32. 32. 33
  33. 33. Blurry on purpose 34
  34. 34. Blurry on purpose 35
  35. 35. 36
  36. 36. Font Size •Provide adjustable font sizes for key UI ■ Aids users with visual impairments ■ Aids elderly users ■ Helps during demonstrations 37
  37. 37. - (NSUInteger)adjustedSystemFontSize { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; CGFloat fontSize = [defaults floatForKey:@”fontSize”]; if ( fontSize < 8.0f ) { return [NSFont systemFontSize]; } return fontSize; } Adjust UI Font Size 38
  38. 38. - (NSFont *)adjustedSystemFont { CGFloat newSize = [self adjustedSystemFontSize]; return [NSFont systemFontOfSize:newSize]; } Adjust system fonts Adjust UI Font Size 39
  39. 39. - (void)updateFonts { [myTextLabel setFont:[self offsetFontForElement:myTextLabel]; [myTextLabel2 setFont:[self offsetFontForElement:myTextLabel2]; } Apply to an element Adjust UI Font Size 40
  40. 40. - (void)updateFonts { NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; NSFont *newFont = [self adjustedSystemFont]; for ( NSTableColumn *column in [myTable tableColumns] ) { id dataCell = [column dataCell]; [dataCell setFont:newFont]; } CGFloat desiredHeight = [layoutManager defaultLineHeightForFont:newFont]; [myTable setRowHeight:desiredHeight + 1]; [layoutManager release]; } Apply to an NSTable Adjust UI Font Size 41
  41. 41. DOW J 0.30 % Nasdaq 0.12 % DOW J + 0.30 % Nasdaq - 0.12 % 42
  42. 42. DOW J 0.30 % Nasdaq 0.12 % DOW J + 0.30 % Nasdaq - 0.12 % 43
  43. 43. Blank on purpose 44
  44. 44. Accessibility API Most items can be given a description in Interface Builder 45
  45. 45. - (void)accessibilitySetOverrideValue:(id)value forAttribute:(NSString *)attribute Programmatic accessibility •Convenience method for anything that can be set in IB NSAccessibility 46
  46. 46. Demo 47
  47. 47. Perceivable Auditory Considerations 48
  48. 48. Blank on purpose 49
  49. 49. 50
  50. 50. Blank on purpose 51
  51. 51. Every Mac includes a range of built in features to address those with disabilities, vision, hearing, motor skills, and learning disabilities and all of these technologies come standard on every new Mac. 52
  52. 52. Blank on purpose 53
  53. 53. Auditory Considerations •Don’t provide audio-only feedback •All sounds should work in mono audio •Be conscious of sound frequency choices •Consider allowing user-selectable sounds 54
  54. 54. NSBeep() 55
  55. 55. NSBeep() 56
  56. 56. Dock Icon Change icon to represent state 57
  57. 57. Dock Icon Change icon to represent state 58
  58. 58. Dock Icon Change icon to represent state 59
  59. 59. Dock Icon Change icon to represent state NSImage *myImage = [NSImage imageNamed:imageName]; [NSApp setApplicationIconImage: myImage]; 60
  60. 60. Dock Icon Badge the icon [[NSApp dockTile] setBadgeLabel:@"1"]; 1 61
  61. 61. Dock Icon Bounce your icon [NSApp requestUserAttention:NSCriticalRequest]; 62
  62. 62. Dock Icon Bounce your icon [NSApp requestUserAttention:NSCriticalRequest]; 63
  63. 63. Dock Icon Bounce your icon [NSApp requestUserAttention:NSCriticalRequest]; 64
  64. 64. Demo 65
  65. 65. Operable Physical Considerations 66
  66. 66. 67
  67. 67. Physical Considerations Provide interaction alternatives •Provide keyboard shortcuts for common tasks •Ensure full keyboard navigation •Provide keyboard alternatives to mouse actions 68
  68. 68. Drag and Drop Keyboard Support Provide a keyboard shortcut •Add commands to change ordering •Add cut/copy/paste support alongside drag and drop 69
  69. 69. Enable Full Keyboard Access Check tab order 70
  70. 70. Demo 71
  71. 71. Understandable Cognitive Considerations 72
  72. 72. 73
  73. 73. 74
  74. 74. 75
  75. 75. 76
  76. 76. Fullscreen Mode Bring an NSView into fullscreen to limit distractions - (IBAction)enterFullScreen:(id)sender { [fullScreenView enterFullScreenMode:[NSScreen mainScreen] withOptions:nil]; } 77
  77. 77. Hiding Advanced UI 78
  78. 78. Hiding Advanced UI 79
  79. 79. Hiding Advanced UI 80
  80. 80. Demo 81
  81. 81. Summary Resolution Font size Color choice NSAccessibility API Non-audible feedback Closed captions Mono audio Full keyboard access Tab order Menu shortcuts Simplify interface Hide advanced options Fullscreen mode 82
  82. 82. Bill Dudney Application Technologies Evangelist dudney@apple.com Accessibility Mailing List Public developer list accessibility-dev@lists.apple.com Documentation http://developer.apple.com/wwdc Apple Developer Forums http://devforums.apple.com More Information 83
  83. 83. Accessibility Web Page www.apple.com/accessibility 84
  84. 84. Accessibility on iPhone OS Nob Hill Wednesday 4:30PM Related Sessions 85
  85. 85. OS X Accessibility Lab Application Frameworks Lab B Tuesday 2:00PM iPhone Accessibility Lab Application Frameworks Lab B Thursday 9:00AM Labs 86
  86. 86. 87
  87. 87. 88
  88. 88. 89

×