맹인이라면 어떻게 프로그래밍 할 수 있습니까?
시력은 대부분의 프로그래머가 당연하게 여기는 감각 중 하나입니다. 대부분의 프로그래머는 컴퓨터 모니터를 보는 데 몇 시간을 소비하지만 (특히 영역에 있을 때 ) 시각 장애인 프로그래머 (예 : 현재 Google에서 일하는 TV Raman)가 있다는 것을 알고 있습니다.
시각 장애인 (또는 서서히 시각 장애인)이라면 프로그래밍을 지원하기 위해 개발 환경을 어떻게 설정 하시겠습니까?
(답변마다 하나의 제안을 해주세요.이 질문의 목적은 좋은 아이디어를 맨 위로 가져 오는 것입니다. 또한 스크린 리더는 좋은 아이디어를 더 일찍 읽을 수 있습니다.)
저는 여러 프로그래밍 인턴십을 경험 한 완전히 시각 장애인 대학생이므로 제 대답은 이것들을 기반으로 할 것입니다. Windows xp를 운영 체제로 사용하고 Jaws 를 사용하여 합성 음성으로 화면에 나타나는 내용을 읽습니다. Java 프로그래밍의 경우 액세스 가능한 완전한 기능을 갖춘 IDE이기 때문에 Eclipse를 사용합니다.
일반적인 규칙으로서의 경험상 SWT를 GUI 툴킷으로 사용하는 자바 프로그램은 Swing을 사용하는 프로그램보다 더 쉽게 접근 할 수 있기 때문에 netbeans에서 멀리 떨어져 있습니다. 모든 .net 프로그래밍의 경우 Visual Studio 2005를 사용합니다. 그 이유는 인턴십에서 사용하는 표준 버전이었고 Jaws와 폼 디자이너와 같은 것을 더 쉽게 접근 할 수 있도록 개발 된 스크립트 세트를 사용하여 매우 접근 할 수 있기 때문입니다.
C 및 C ++ 프로그래밍의 경우 gcc와 함께 cygwin을 컴파일러로 사용하고 emacs 또는 vim을 편집기로 사용합니다. 제 인턴쉽 중에는 Z / OS 프로그래밍이 많이 포함되었습니다. Cygwin을 통해 rlogin 세션을 사용하여 메인 프레임의 USS 하위 시스템에 액세스하고 C3270을 3270 에뮬레이터로 사용하여 메인 프레임의 ISPF 부분에 액세스했습니다.
나는 보통 합성어에 의존하지만 점자 디스플레이가 있습니다. 일반적으로 말하기 작업이 더 빠르지 만 구두점이 중요하고 복잡 해지는 상황에서는 점자 디스플레이를 사용합니다. 이에 대한 예는 많은 중첩 된 괄호가있는 if 문과 구두점이 매우 중요한 JCL입니다.
최신 정보
나는 cygwin http://emacspeak.sourceforge.net 에서 Emacspeak를 가지고 놀고 있습니다. 다소 응답이없는 것처럼 보이므로 프로그래밍 편집기로 사용할 수 있을지 확실하지 않지만 구성 옵션을 살펴 보지 않았습니다. 아직.
저는 시각 장애인이며 Windows, Mac, Linux 및 DOS에서 C / C ++, Python, Java, C # 및 다양한 작은 언어의 언어로 약 13 년 동안 프로그래밍을 해왔습니다. 원래 질문은 환경 구성에 관한 것이었지만 시각 장애인이 컴퓨터를 어떻게 사용하는지 살펴 보는 것이 가장 좋은 답이라고 생각합니다.
어떤 사람들은 다른 답변에서 언급 된 TV Raman 및 Emacspeak 환경과 같은 대화 환경을 사용합니다. 가장 일반적인 해결책은 OS 활동을 모니터링하고 합성 음성 또는 물리적 점자 디스플레이를 통해 사용자에게 경고하는 화면 판독기를 사용하는 것입니다 (일반적으로 한 번에 20 ~ 80 자 표시). 이는 시각 장애인이 액세스 가능한 모든 애플리케이션을 사용할 수 있음을 의미합니다.
그래서 저는 개인적으로 Visual Studio 2008을 사용하고 있으며 거의 수정하지 않고 실행합니다. 나는 이것이 산만하다는 것을 알았 기 때문에 입력 할 때 오류를 표시하는 것과 같은 특정 기능을 끕니다. Microsoft에 합류하기 전에는 메모장과 같은 표준 텍스트 편집기에서 모든 개발이 이루어 졌으므로 다시 한 번 사용자 지정이 필요하지 않습니다.
들여 쓰기를 알리도록 화면 판독기를 구성 할 수 있습니다. 저는 개인적으로 이것을 사용하지 않습니다. Visual Studio가 이것을 처리하고 C #은 중괄호를 사용하기 때문입니다. 그러나 이것은 공백이 중요한 Python과 같은 언어에서 매우 중요합니다. 마지막으로 Emacspeak는 구문의 다른 부분 (키워드, 주석, 식별자 등)을 나타 내기 위해 다른 음성 / 피치를 사용합니다.
저는 시각 장애인이고 지난 12 년 동안 프로그래머로 일했습니다. 현재 수석 설계자이며 Sapient Corporation (웹 기반 및 씩 클라이언트 기반 엔터프라이즈 솔루션을 모두 만드는 캠브리지 기반 컨설팅 회사)에서 일하고 있습니다. 저는 여러 화면 판독기를 사용하지만 대부분 Windows 및 NVDA 용 Jaws를 사용합니다.
저는 주로 Microsoft 플랫폼과 Visual Studio에서 작업 한 환경입니다. 또한 DB 액세스, 네트워크 모니터링 등을 위해 MS Sql 엔터프라이즈 스튜디오 및 기타 도구와 같은 도구를 사용합니다. emacspeak와 함께 시간을 보내려고했지만 대부분의 작업이 MS 플랫폼을 기반으로했기 때문에 실제로 많은 시간을 보내지 않았습니다. 나는 또한 리눅스에서 C ++ 작업을하는 데 몇 년을 보냈다. 대부분은 모든 코딩을 위해 윈도우에서 메모장이나 비주얼 스튜디오를 사용하고 리눅스 환경과 파일을 공유하기 위해 삼바를 사용했다. 또한 일부 실험적인 작업을 위해 borland C를 사용했습니다. 최근에 다른 사람들이 위에서 언급 한 것처럼 들여 쓰기를 중첩 메커니즘으로 사용하여 작성 되었기 때문에 시각 장애인에게는 특히 비 친화적 인 파이썬을 가지고 놀았습니다. 그래도 NVDA는 가장 인기있는 오픈 소스 스크린 리더는 완전히 파이썬을 사용하여 작성되었으며 해당 프로젝트의 커미터 중 일부는 스스로 눈을 멀게합니다. 건축가로서 자주 묻는 특히 흥미로운 질문은 UML, visio 및 rational rose 등과 같은 다이어그램을 어떻게 처리 하는가입니다. Visio는 아마도 가장 접근하기 쉬운 다이어그램 도구 일 것입니다. 나는 나를 위해 합리적인 장미 다이어그램을 읽기 위해 jaws 스크립트를 작성할 수있었습니다. 저는 UML 2.0 다이어그램에 액세스하기 위해 일부 독일 대학에서 개발 한 T-dub (맹인을위한 기술 다이어그램 이해)이라는 도구를 사용했습니다. 모델 기반 개발을 수행하기 위해 magic draw라는 Java 기반 추악한 도구를 사용했으며 androMDA 프로젝트의 커미터였으며 UML 모델에서 .Net 코드 생성기 개발을 도왔습니다. 건축가로서 자주 묻는 특히 흥미로운 질문은 UML, visio 및 rational rose 등과 같은 다이어그램을 어떻게 처리 하는가입니다. Visio는 아마도 가장 접근하기 쉬운 다이어그램 도구 일 것입니다. 나는 나를 위해 합리적인 장미 다이어그램을 읽기 위해 jaws 스크립트를 작성할 수있었습니다. 저는 UML 2.0 다이어그램에 액세스하기 위해 일부 독일 대학에서 개발 한 T-dub (맹인을위한 기술 다이어그램 이해)이라는 도구를 사용했습니다. 모델 기반 개발을 수행하기 위해 magic draw라는 Java 기반 추악한 도구를 사용했으며 androMDA 프로젝트의 커미터였으며 UML 모델에서 .Net 코드 생성기 개발을 도왔습니다. 건축가로서 자주 묻는 특히 흥미로운 질문은 UML, visio 및 rational rose 등과 같은 다이어그램을 어떻게 처리 하는가입니다. Visio는 아마도 가장 접근하기 쉬운 다이어그램 도구 일 것입니다. 나는 나를 위해 합리적인 장미 다이어그램을 읽기 위해 jaws 스크립트를 작성할 수있었습니다. 저는 UML 2.0 다이어그램에 액세스하기 위해 일부 독일 대학에서 개발 한 T-dub (맹인을위한 기술 다이어그램 이해)이라는 도구를 사용했습니다. 모델 기반 개발을 수행하기 위해 magic draw라는 Java 기반 추악한 도구를 사용했으며 androMDA 프로젝트의 커미터였으며 UML 모델에서 .Net 코드 생성기 개발을 도왔습니다. 나는 나를 위해 합리적인 장미 다이어그램을 읽기 위해 jaws 스크립트를 작성할 수있었습니다. 저는 UML 2.0 다이어그램에 액세스하기 위해 일부 독일 대학에서 개발 한 T-dub (맹인을위한 기술 다이어그램 이해)이라는 도구를 사용했습니다. 모델 기반 개발을 수행하기 위해 magic draw라는 Java 기반 추악한 도구를 사용했으며 androMDA 프로젝트의 커미터였으며 UML 모델에서 .Net 코드 생성기 개발을 도왔습니다. 나는 나를 위해 합리적인 장미 다이어그램을 읽기 위해 jaws 스크립트를 작성할 수있었습니다. 저는 UML 2.0 다이어그램에 액세스하기 위해 일부 독일 대학에서 개발 한 T-dub (맹인을위한 기술 다이어그램 이해)이라는 도구를 사용했습니다. 모델 기반 개발을 수행하기 위해 magic draw라는 Java 기반 추악한 도구를 사용했으며 androMDA 프로젝트의 커미터였으며 UML 모델에서 .Net 코드 생성기 개발을 도왔습니다.
일반적으로 저는 제 강점을 발휘할 수있는 팀 환경에서 가장 잘 성장합니다. 예를 들어, 다이어그램은 디자인을 전달 / 문서화하는 데 매우 유용하지만 실제 디자인 프로세스에는 많은 생각과 브레인 스토밍이 필요하며 디자인이 생각되면 팀 동료 중 한 명이 깔끔하게 그린 그것을 밖으로 그림. 사람들은 위의 내용이 독립성이나 능력의 부족이라고 잘못 오해하고 있지만 저는 이것을 순수한 상호 의존성이라고 생각합니다. 팀 동료 혼자서도 그 디자인을 스스로 생각 해낼 수 없었을 것입니다. -내가 그에게 디자인을 문서화하는 데 의존한다면 그렇게하라. 내가 직면 한 대부분의 장애물은 도구 기반 접근성입니다.
저는 맹인 개발자이고 Windows, GNU Linux 및 MacOS X에서 작업합니다. 각 플랫폼에는 시각 장애인을위한 서로 다른 워크 플로가 있습니다. 이것은 시각 장애인 개발자가 사용하는 스크린 리더에 따라 다릅니다. 시각 장애인이 개발 도구에 완전히 액세스 할 수있는 것은 아닙니다. 모든 IDE에서 코드를 입력하고 컴파일 기능을 사용할 수 있지만 인터페이스 빌더, XGlade 등의 디자인 도구를 사용하여 인터페이스를 디자인해야하는 경우 많은 문제가 있습니다. Borland Delphi로 개발할 때 예를 들어 Button과 같은 컨트롤을 추가 할 수 있었고 개체 검사기 창을 사용하여 컨트롤의 각 시각적 속성을 수정할 수있었습니다. 많은 IDE는 개체 검사기 창을 사용하여 시각적 및 비 시각적 속성을 수정하지만 새 컨트롤을 추가하는 방법이 팔레트에서 캔버스로 컨트롤을 끌어서 놓는 것으로 구성되어 있기 때문에 시각 장애인 개발자의 문제는 새 컨트롤을 추가하는 것입니다. Visual Studio 200x는이 작업을 수행하기 위해 대체 방법을 사용하지만 IDE의 인터페이스는 새 버전마다 변경되며 Windows 용 화면 판독기는 일부 비표준 응용 프로그램의 각 영역을 식별하기 위해 스크립트를 사용하는 특별한 지원이 필요하기 때문에 이는 큰 문제입니다. 시각 장애인 개발자는 화면 판독기와 함께 Visual Studio 2008을 사용할 수 있지만이 IDE의 새 버전이 나타나면이 IDE 버전에 대한 새 버전의 스크립트를 기다려야합니다. 인터페이스 빌더가있는 Xcode에는 아직 작업을 끌어서 놓기위한 대안이 없습니다. 여러 번 Apple에 요청했지만 다른 작업을하고 있습니다. 앱 스토어에 3 개의 앱 (액세스 가능한 지뢰 찾기, 액세스 가능한 과일 기계 및 Programar a ciegas RSS)을 게시했고 모든 인터페이스를 코드로 디자인해야했습니다. 힘든 작업이지만 각 컨트롤의 모든 기능을 관리 할 수 있습니다. Eclipse에는 액세스 가능한 코드 편집기가 있지만 디버그 콘솔, 설계 용 플러그인 또는 문서화 영역과 같은 다른 개발 도구는 시각 장애인을위한 보조 도구에 문제가 있습니다.
Documentations is a problem for blind developers too. Many samples and demonstrations use images to show the explanation (set the environment settings as you can in the picture)
I think the question is not being blind. The question is the companies and development groups think accessibility affects final software but it doesn't affect development software. They think a blind user should be a client but a blind user can't be a development mate.
Blind associations ask accessibility for products and services but they forgot blind developers. Blind people can work as lawyers, journalists, teachers but a blind developer is a strange concept even for the blind. Many times I feel alone because some blind friends of mine can't understand my work.
You can read my opinion about this issue in this article, in Spanish, in my blog http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/ there is a translation tool in the web page. Sorry but I didn't translate it.
Emacs has a number of extensions to allow blind users to manipulate text files. You'd have to consult an expert on the topic, but emacs has text-to-speech capabilities. And probably more.
In addition, there's BLinux:
Linux for the blind. Been around for a very long time. More than ten years I think, and very mature.
Keep in mind that "blind" is a range of conditions - there are some who are legally blind that could read a really large monitor or with magnification help, and then there are those who have no vision at all. I remember a classmate in college who had a special device to magnify books, and special software she could use to magnify a part of the screen. She was working hard to finish college, because her eyesight was getting worse and was going to go away completely.
Programming also has a spectrum of needs - some people are good at cranking out lots and lots of code, and some people are better at looking at the big picture and architecture. I would imagine that given the difficulty imposed by the screen interface, blindness may enhance your ability to get the big picture...
Hanselman had a really interesting podcast with a blind developer recently.
I worked for the Greater Detroit Society for the Blind for three years running a BBS tailored for blind access and worked with a number of blind users on how to better meet their needs, and with newly blind users to get them acclimated to the available hardware and software offerings that were available at the time. If nothing else, I at least learned to read Braille as a hedge against the case where I ever wound up in the same situation!
The majority of blind computer users and programmers use a screen reader of some sort. Jaws in particular is popular. Fortunately, most major applications these days offer some form of handicapped access. You may have to tune your environment slightly to cut down on the chatter, e.g. consider disabling Intellisense in Visual Studio.
A Braille display is less common and is comparatively much more expensive and can show 40 or 80 columns of text, and can be used when exact positioning/punctuation is important. While a screen reader can be configured to rattle off punctuation, a lot of people find it distracting, and it is easier in many cases to feel your way through it. Jaws can be configured to drive the display, so you're not juggling accessibility applications.
Also, a lot of legally blind users still have some modicum of sight left to them. Using high contrast backgrounds and the magnification functionality can help a lot of these users.
Using ToggleKeys in Windows will let you hear when you accidentally tap one of the modal 'caps lock', 'num lock', 'scroll lock', etc. keys as well.
I know at least one Haskell programmer who uses a screen reader and who explicitly programs without using Haskell's layout rules, and instead opts to use the rather non-idiomatic, but supported {;}
's instead, because it is easier/less distracting for him to get his screen reader to read off punctuation than for him to figure out exact indentation that complies with Haskell's layout rules. On that same note, I've heard some grumbling from a couple of blind programmers about when they have to write Python.
Ultimately, you learn to play on your strengths.
I can't recall the source, but I've heard/read about a form of audible syntax "colouring" - so that instead of a string assignment being read as
foo equals quote this is a string quote
the string part would be read with a different pitch or voice to make the separation of elements clearer.
One place to start is the Blinux project:
That project describes how to get Emacspeak (editor with text-to-speech) and has a lot of other resources.
I worked with one person who's eye sight all but prevented them from using a monitor - they did well with Screen reader software and spent a lot of time using text based applications and the shell.
Wikipedia's list of screen reader packages is another place to start: http://en.wikipedia.org/wiki/List_of_screen_readers
I'm a postgraduate student in Beijing,China. I major in computer science and a lot of my work is programming. I am born with low sight, I need to use magnifying tools to see fonts on screen clearly. I use microsoft's mgnify tools on windows and use compiz's magnify plug in if on linux. I usally set the tool to magnify as three times many as the original font size. For me maginify tools is ok, the main problem is the speed,I have to move mouse to keep cursors follow the text I'm looking at, microsoft's magnify provides a option of "auto follow the text edit points",that set me from continuously mouse movement when editting or coding. But it doesn't always works because of the edit software or IDE may not support that. Magnifying tools on linux are hard to use. The KMag come with KDE has a terrible refresh rate which make my eyes unconfortable, compiz's magnifying plugs which I'm using now is OK,but has no function of auto focus(focus auto following). iOS provides quite perfect solution for me with full screen magnifying, especially on ipad's 9.7 inches screen. there auto focus is not necessary because I hardly use them to code or do other edit stuff. Android provides very little accessibility functions, only like shake feedback, which is useless for me. there is no any kind of good magnifying tools on android , not to mention advance function like full screen magnify on iOS. I used to study Qt, want to build a useful magnify tools on linux, even on android. But hardly have some progress.
When I was in grad school, we had a member of our research team who was blind. He was a bit older, maybe mid-40s. He told us about how he programmed his first computer (which was well before text-to-speech was common) to output the contents of the screen in Morse Code. To overcome the obvious chicken-and-egg problem, he had to completely rewrite the code each time through from scratch until it was working well enough for him to have it read back to him.
Now he uses text-to-speech, though he plans the code very thoroughly before actually writing any of it, to minimize the debug loop.
He was also pretty good at giving PowerPoint presentations that, despite his lack of sight, were just about as well formatted as any sighted presenter's.
This blog post has some information about how the Visual Studio team is making their product accessible:
Visual Studio Core Team's Accessibility Lab Tour Activity
Many programmers use Emacspeak:
Emacspeak --The Complete Audio Desktop
Back in New Zealand I knew someone who had macular degeneration, so was partially sighted. He's a very talented programmer and wound up using Delphi because he could work by recognizing word shapes This was easier to do with a Pascal-like syntax than a C-ish squiggly bracket one. He has a web site, but doesn't seem to mention macular degeneration at all, so I won't name him.
I'm blind and from some months I'm using VINUX (a linux distro based on Ubuntu) with SODBEANS (a version of netbeans with a plug-in named SAPPY that add a TTS support). This solution works quite well but sometimes I prefer to launch Win XP and NVDA for launching many pages on FireFox because Vinux doesn't work very well when you try to open more than 3 windows of FireFox...
As many have pointed out, emacspeak has been the enduring solution cross platform for many of the older hackers out there. Since it supports Linux and Mac out of the box, it has become my prefered means of developing Windows egnostic projects.
To the issue of actually getting down syntax through an auditory one as opposed to a visual one, I have found that there exists a variety of techniques to get one close if not on the same playing field.
Auditory icons can stand in place for verbal descriptors for one example. You can, put tones for how far a line is indented. The longer the tone, the further the indent. Since tones can play in parallel with text to speech, the information comes through in the same timeframe and doesn't serialize the communication of something so basic.
Braille can quickly and precisely decode to the user the exact syntax of a line. This is something more useful for people who use braille in daily life; the biggest advantage is random access to the contents of the display. Refreshable units typically have router keys above each character cell which can place the cursor to that cell. No fiddling with arrow keys O(n) op vs O(1) access.
Auditory dimensionality (pitch, rate, volume, inflection, richness, stress, etc) can convey a concept (keyword, class, variable, error, etc). For example, comments can be read in a monotone inflection...suiting, if I might say so :).
Emacs and other editors to lesser extents (Visual Studio) allow a coder to peruse a program symantically (next block, fold block, down defun, jump to def, walk up the parse tree, etc). You can very quickly get the "big" picture of the structure of an entire project doing this; with extensions like Cedet, you can get the goodness of VS/Eclipse/etc cross platform and in a textual editor.
Could probably go on and on, but that in a nutshell, is the basis of why a few of us are out there hacking away in industry, adacdemia, or in our basements :).
A group of students from Southern Illinois University Edwardsville and Washington State University are working on a programming language for the blind:
http://www.youtube.com/watch?v=lC1mOSdmzFc
harald van Breederode is a well-known Dutch Oracle DBA expert, trainer and presenter who is blind. His blog contains some useful tips for visually impaired people.
What in the world would a braille keyboard even be??
There are such things as braille writers but you would never use one as an input device for a computer.
If you're simply talking about a keyboard with the braille symbols on it this would also be a very bad idea. You're going to have a lot more keys to reach while typing and it would still be slower.
Touch typing is NOT a visual skill, a blind person can do it just as well as a sighted person.
I think that this would work well in extreme programming using the pair programming principle. If you're making software for blind people, who better to make it then someone who would literally be in touch with the business requirements, so I don't think it's very far fetched at all.
As for writing code, well unless there was some kind of feedback I think a person may struggle with syntax. Audio feedback may help to a point though.
NVDA is a good open source screen reader for win.
What about inventing some kind of device that you plug in a usb port and that would be basically a "sheet of rubber" that would modify itself to show brail of your code, allowing blind people to read it instead to hear it?
There are a variety of tools to aid blind people or partially sighted including speech feedback and braillie keyboards. http://www.rnib.org.uk/Pages/Home.aspx is a good site for help and advice over these issues.
Once I met Sam Hartman, he is a famous Debian developer since 2000, and blind. On this interview he talks about accessibility for a Linux user. He uses Debian, and gnome-orca as screen reader, it works with Gnome, and "does a relatively good job of speaking Iceweasel/Firefox and Libreoffice".
Specifically speaking about programming he says:
While [gnome-orca] does speak gnome-terminal, it’s not really good enough at speaking terminal programs that I am comfortable using it. So, I run Emacs with the Emacspeak package. Within that, I run the Emacs terminal emulator, and within that, I tend to run Screen. For added fun, I often run additional instances of Emacs within the inner screens.
참고URL : https://stackoverflow.com/questions/118984/how-can-you-program-if-youre-blind
'code' 카테고리의 다른 글
체크 아웃하지 않고 분기 포인터를 다른 커밋으로 이동 (0) | 2020.09.30 |
---|---|
Twitter Bootstrap에서 navbar 색상 변경 (0) | 2020.09.30 |
평범한 영어로 모나드? (0) | 2020.09.30 |
Python 2.X에서 범위와 xrange 함수의 차이점은 무엇입니까? (0) | 2020.09.30 |
IEnumerable의 foreach에 해당하는 LINQ (0) | 2020.09.30 |