AudioHighlight: Code Skimming for Blind Programmers

Blind programmers use a screen reader to read code aloud. Screen readers force blind programmers to read code sequentially one line at a time. In contrast, sighted programmers are able to skim visually to the most important code areas, assisted by syntax highlighting. However, there is a place where there is a widely adopted approach to skimming a structured document: the web. Modern screen readers employ what is known as a virtual cursor to navigate structural information on webpages such as HTML heading tags. These tags can indicate different sections and subsections in the structure of a page. We harness the existing familiarity of blind computer users with this interface in our approach which we call AudioHighlight. AudioHighlight renders the code inside a web view, either as part of the Eclipse IDE or as a web service. It places HTML heading tags on the structural elements of a source file such as classes, functions and control flow statements. We compare AudioHighlight to the state of the art in code skimming represented by a previous code skimming approach called StructJumper. We also compare to the state of practice in reading code on the web as represented by GitHub. We found that AudioHighlight increased the quality and speed of code comprehension as compared to both approaches.

[1]  Alberto Bacchelli,et al.  Expectations, outcomes, and challenges of modern code review , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[2]  Foutse Khomh,et al.  An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, on Program Comprehension , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[3]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[4]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[5]  Martin P. Robillard,et al.  A field study of API learning obstacles , 2011, Empirical Software Engineering.

[6]  Sven Apel,et al.  Measuring and modeling programming experience , 2013, Empirical Software Engineering.

[7]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[8]  Andrian Marcus,et al.  Source code files as structured documents , 2002, Proceedings 10th International Workshop on Program Comprehension.

[9]  Ruven E. Brooks Towards a theory of the cognitive processes in computer programming , 1999, Int. J. Hum. Comput. Stud..

[10]  Jaime Sánchez,et al.  Blind learners programming through audio , 2005, CHI EA '05.

[11]  Ameer Armaly Making Linux accessible for the visually impaired with speakup , 2005 .

[12]  Pearl Brereton,et al.  Robust Statistical Methods for Empirical Software Engineering , 2017, Empirical Software Engineering.

[13]  Gloria Mark,et al.  The cost of interrupted work: more speed and stress , 2008, CHI.

[14]  Jonathan Sillito,et al.  Searching and skimming: An exploratory study , 2009, 2009 IEEE International Conference on Software Maintenance.

[15]  Martin P. Robillard,et al.  How effective developers investigate source code: an exploratory study , 2004, IEEE Transactions on Software Engineering.

[16]  Markel Vigo,et al.  Challenging information foraging theory: screen reader users are not always driven by information scent , 2013, HT.

[17]  Richard E. Ladner,et al.  StructJumper: A Tool to Help Blind Programmers Navigate and Understand the Structure of Code , 2015, CHI.

[18]  I. V. Ramakrishnan,et al.  More than meets the eye: a survey of screen-reader browsing strategies , 2010, W4A.

[19]  Collin McMillan,et al.  A Comparison of Program Comprehension Strategies by Blind and Sighted Programmers , 2018, IEEE Transactions on Software Engineering.

[20]  Stephanie Ludi,et al.  Exploration of the Use of Auditory Cues in Code Comprehension and Navigation for Individuals with Visual Impairments in a Visual Programming Environment , 2016, ASSETS.

[21]  André Pimenta Freire,et al.  Guidelines are only half of the story: accessibility problems encountered by blind users on the web , 2012, CHI.

[22]  Joachim Goedhart,et al.  Calculation of a distribution free estimate of effect size and confidence intervals using VBA/Excel , 2016, bioRxiv.

[23]  Stephanie Ludi,et al.  Eliciting Programming Challenges Faced by Developers with Visual Impairments: Exploratory Study , 2016, 2016 IEEE/ACM Cooperative and Human Aspects of Software Engineering (CHASE).

[24]  Ken-ichi Matsumoto,et al.  Source code comprehension strategies and metrics to predict comprehension effort in software maintenance and evolution tasks - an empirical study with industry practitioners , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[25]  Andreas Stefik,et al.  An Empirical Investigation into Programming Language Syntax , 2013, TOCE.

[26]  Aaron Allen,et al.  What Frustrates Screen Reader Users on the Web: A Study of 100 Blind Users , 2007, Int. J. Hum. Comput. Interact..

[27]  Jeffrey P. Bigham,et al.  WebAnywhere: a screen reader on-the-go , 2008, W4A '08.

[28]  Víctor M. González,et al.  "Constant, constant, multi-tasking craziness": managing multiple working spheres , 2004, CHI.

[29]  Thomas Fritz,et al.  Eye gaze and interaction contexts for change tasks - Observations and potential , 2017, J. Syst. Softw..

[30]  N. Cliff Dominance statistics: Ordinal analyses to answer ordinal questions. , 1993 .

[31]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[32]  Emerson R. Murphy-Hill,et al.  An exploratory study of blind software developers , 2012, 2012 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[33]  Andrian Marcus,et al.  Supporting program comprehension with source code summarization , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[34]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[35]  Yann-Gaël Guéhéneuc,et al.  Impact of the visitor pattern on program comprehension and maintenance , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[36]  Collin McMillan,et al.  Improving automated source code summarization via an eye-tracking study of programmers , 2014, ICSE.

[37]  Richard E. Ladner,et al.  Freedom to roam: a study of mobile device adoption and accessibility for people with visual and motor disabilities , 2009, Assets '09.