Wednesday, November 9, 2016

An open letter to students: Tear down the Great Wall of Ignorance, reasoned discourse, voice for the voiceless, privileged and minorities working together

To my fellow students:

Like many of you, I have mixed to negative feelings about what happened on the election night. Upon the election of a businessman from New York who caused a stir with his words and actions from the past, I became concerned that some of my friends, especially immigrants, would be in a disadvantage for years to come.

However, I believe that this should not be a cause to skip school, walk out of lectures, and just chant around campuses saying that we will not accept the president-elect to take the Oval Office. As students and intellectuals, we have the power and privilege to learn latest technologies and ideas, experiment with latest techniques, analyze information, and contribute to the political process through our voices and advocacy. Walking out of lectures just because our favorite candidate did not win is, to me, a disgrace to our forefathers who fought for universal suffrage to come to life, who fought for democratic process to take shape via reasoned dialogue, and saw long-term implications of student movements and laid the foundation to privileges we enjoy in 2016.

I believe that there are other ways of helping those in need, particularly those we feel would be disadvantaged in the future. Certainly we can go and embrace minorities, we can assist immigrants with advice, and can formulate changes through dialogue. As students, we are still learning, and we could use our intellectual capacity to inform and persuade the electorate. As students, we are given a mandate to learn principles and methods to guide the future generations. As students, we are given an opportunity to make a difference through reasoned discourse and critical analysis. As students, we are in a position of leadership to peacefully demand changes and let the new national leaders know that we are a force that cannot be ignored through reasoned advocacy. As students, we can serve as voice for the voiceless, champion for the oppressed, and participants in a historic moment to tear down the Great Wall of Ignorance.

To my fellow students who believe that they can exercise privilege to ignore minorities and partake in silent oppression: come, let us reason together. Bring your case, and students who have experienced oppression and ignorance can bring their case. Because of the physical and virtual wall called "ignorance and prejudice", you are creating a situation where America's progress has come to a halt. Please stop building this wall, or would-be partners (immigrants, minority students and others) will build a taller and thicker wall, thereby impairing America's capacity to recognize, accept, deal with, and move on from America's dark past of oppression and prejudice. Please learn while you are young, otherwise history will repeat itself. Learn while you can, because there will come a day in life where one cannot go back to change how things are then. You can, and you are more than capable of making a difference in making America great and whole again. As a student with disabilities and minority status, I offer you a hand in hopes that we can come together, embrace and work together to making this nation great again.

To my fellow students who were oppressed, ignored or prejudiced due to their minority status: do not pay back evil with evil, prejudice with prejudice, or ignorance with more ignorance. As much as those with privilege may have partaken in silent oppression, you are also responsible for partaking in divisions by building a thicker wall. Learn to have reasoned dialogues with others before it is too late. Represent the oppressed before it is taken away. You and the privileged have shared responsibility of kindling the fire of reconciliation, and even if it takes generations, be sure to let this flame going.

To all my fellow students, privileged, minority and what not: America is possible because we work together. America is possible because we are learning what to and not to do in the future. America is possible because we are united to make this nation better. America is possible because we are learning to reconcile our differences. America is possible because we have capacity to love, embrace and understand. America is possible because we can tear down the walls that separate us. America is possible because we can learn from mistakes of our forefathers together. America is possible because we can make history together. America is possible because we are building the future of this nation together. America is possible because we are all Americans - native or foreign-born, across race, ethnicity and cultures, different values and beliefs, all because we are created equal, endowed with vast freedom. All I, a fellow student with blindness and from a city with hundreds of diverse cultures, ask you to do is this: remember and learn from the glorious and dark past, reconcile the differences, and reach out to love, embrace, understand and work together. The future of this nation - from Washington to Honolulu and beyond - depends on us - students.

Thank you.

Joseph S. Lee
Los Angeles City College
November 9, 2016

An open letter to President-Elect (Donald Trump)

Dear Mr. President-Elect,

My name is Joseph Lee, a student at a community college in Los Angeles, California. First, congratulations on becoming the next leader of the United States of America, especially at a time when we are facing realities of fame, security, uncertainty and anxiety. As the president of a nation with global influence in freedom, education, military and culture, I wish you success in your endeavor in making America great again.

I'm writing this letter in hopes that you would consider praises and concerns of members of this nation in regards to the rule of law and respecting the oppressed. More importantly, I would like to bring up the sensitive issues of immigrants, people with disabilities, and ensuring that the essence of justice are practiced in your administration.

First, without immigrants, we could not witness United States becoming a superpower in education, culture and influence. More importantly, the history of United States began with immigrants - native Americans settling in vast plains of this land, immigrants coming to this continent seeking freedom from oppression, to the immigrants who crossed the ocean and land to seek new economic and social opportunities. As a 1.5 generation immigrant myself, I came to this land more than a decade ago in hopes of getting a better education and to seek opportunities for those like me with blindness and other disabilities.
However, some in this society would say that we immigrants are taking away valuable jobs and opportunities. I would like to challenge this by saying that some in our society may have forgotten the fact that their ancestors are immigrants as well, and the notion of nativism and superiority may have caused us to forget struggles of our parents and grandparents who had to go through nighttly shifts and harsh working conditions, knowing that, one day, their progeny would have a better life in this land they are living. Instead of giving opportunities to a group of future leaders whose children can shape politics at Washington, some have erected physical and virtual walls of ignorance, ethnocentrism, supremecy and denial. Once a land of opportunity to immigrants, this has become a land of oppression of aliens, especially those who can make America greater than before. Thus, I would like to sincerely request repeating an accomplishment from another outsider in the 1980's: please tear down the Great Wall that divided this nation and the world, this time the Great Wall of of Ignorance towards immigrants, otherwise the immigrant community will build a greater wall of ignorance.

Second, I am one of millions of Americans with disabilities. More than two decades ago, a landmark law passed the floor of the House of Representatives, confirmed by the Senate, and signed into law by the man who congratulated you upon elected. Whereas the conditions of Americans with disabilities has improved thanks to healthcare, technology and more opportunities, there are visible and unseen gaps between what I and other disabled Americans can achieve versus realities of ignorance, hate, denial and discrimination, particularly for many young people who would like to receive an opportunity to make America great again. In case of people with disabilities, we can help you achieve your goals by giving us directions and ways in which we can dutifully fulfill our rights as members of this society, including access to education, working towards reduced discrimination and ignorance, and listening to those in need and thinking about what can be done to make this nation great in terms of opening up opportunities to minorities such as Americans with various disabilities.

Speaking of minorities, I would like to stress that the optimal solution to making things work great is to use different parts to create a cohesive whole. In other words, just because some citizens are minorities does not mean they deserve oppression and injustice. One way to achieve your aim of making America great again is to listen to minorities, especially the members with little power who can offer great advice and who can show that they are more than capable of making your administration a success. Please do not turn away from them, especially those who can influence Washington to their will: children, students, professors, religious leaders, men and women with wisdom, and those who, if called, would be ready to reshape the capital in more than 700 days from now: the electorate with different backgrounds, beliefs, values and experiences. Also, please do not trump yourself above the law and justice: as the new leader, you are more than capable of showing three hundred million strong Americans and others watching around the globe that you are a model citizen, listening to the oppressed, caring for the weak, and to go down in history as a respected administrator.

In closing, I would like to offer two quotes that sums up the current state of affairs around this nation, something a war hero and later president rightfully said and did not live to see America become great a few decades later:

"The qualities of a great man are vision, integrity, courage, understanding, the power of articulation, and profundity of character. To be true to one's own freedom is, in essence, to honor and respect the freedom of all others."
- Dwight D. Eisenhower

Sincerely and with respect,
Joseph S. Lee
Los Angeles, CA
November 9, 2016

Tuesday, August 9, 2016

Open letter to Windows Insider Program members around the world: Our duties, what we should have done for Redstone 1, what we can do for Redstone 2

To my fellow Windows Insiders, especially for those using screen readers and assistive technologies:
As a fellow journeyman in software testing and development, I'm proud of the fact that we have done our job when it comes to testing Anniversary Update builds (Redstone 1). We faced issues, sorted through bugs, provided millions of feedback and served as an influential partner with Microsoft in shaping the Windows 10 ecosystem for months and years to come.
As I reflect back at Redstone 1 era, I'm reminded of how much we've accomplished, as well as the need to remind ourselves that our mission isn't over. In particular, I believe that we need to take proactive steps in making sure that we carry out our duties: continuous feedback, and serving as a guide to those who will follow. As Insiders, we are called to help, give back, and support one another, and in extension, people who'll get to know what we've been testing for a few weeks.
However, I must say that I'm disappointed with the way we think about the privilege of our participation, especially when it comes to testing for accessibility regressions, not thinking about certain aspects of being Insiders, and championing progress rather than support and guidance to others. To me, an ideal Windows Insider is someone who can give guidance to many, an influential representative of a population who may not know what's going on behind the scenes. As representatives, Insiders should serve as a voice for the population we serve, as well as to give essential guidance in times of need, especially when a stable build appears in Current Branch. Unfortunately, we have witnessed the opposite in certain cases, notably misinformation floating around when Anniversary Update came out that caused some to resort to risky behavior (for example, removing a screen reader completely when it was sufficient to remove the unnecessary driver unless if this was necessary). Although the cause of this issue was due to compatibility flag from Microsoft (subsequently fixed), I believe we Insiders are also to blame, seeing that we did not serve as helpful guides in some cases.
After thinking about what some users went through last week, I came to the conclusion that we Insiders should re-evaluate how we think about why we join the program and train ourselves to serve as supportive guides as well as champions of change. Progress and change is nothing unless we give guidance to others, especially to a population who does not have resources to obtain needed information on time. Instead of rallying around a cool feature, I believe it is also important to provide ropes for Current Branch users so they can have painless experience as much as possible. Instead of just being soldiers of change, we Insiders should also be counsellors who are ready to help in times of crisis.
The events of last week (Anniversary Update upgrade attempts and display compatibility issues for screen reader users) clearly showed what Insiders should not have done and some underlying causes (the actual cause of the display flag problem, according to Freedom Scientific, Microsoft and reputable sources, was due to errors from Microsoft's upgrade tool, now fixed), with one of the issues being Insiders not taking proactive steps to step up and help. For some, this gave us an opportunity to think about what we Insiders can learn from what happened a few days ago, as well as what we Insiders can do better to prepare for Redstone 2 (Windows 10 Version 170x), especially the first few days during which the kind of event we witnessed may happen again.
In light of this, I'd like to ask my fellow Windows Insiders to ask the following questions as we prepare ourselves to board next round of flights:
* Why did I sign up for Windows Insider Program?
* Did I sign up for Windows insider Program just to play around with new features or to help stable build users in the future?
* Am I willing to try the unknown and constantly changing feature sets, knowing that stable build users will use them later?
* Am I willing to give my best when giving feedback, such as steps to reproduce and serving as a representative of a population?
* Am I willing to serve as helpful guides in times of crisis, confusion and need, such as when new stable builds are released?
Few remarks for audience groups:
To users of stable builds, especially to users of screen readers and other assistive technologies: as a Windows Insider and a screen reader contributor, I take user feedback seriously. At this time, on behalf of other Insiders, I'd like to apologize for not doing our real work in times of need. I regret that we Insiders should have been more helpful when you first came to know Windows 10 Version 1607, especially when it comes to upgrades. I and other Insiders will try our best to make sure that upgrade to Redstone 2 will be painless for you.
To other Insiders (not just screen reader users, but also to millions of fellow WIP citizens): As noted above, I'd like to kindly request that we think about our duties as Insiders: not only being champions of change, but also to serve as counsellors in times of need and support.
Thank you.

Friday, July 8, 2016

Thoughts on responding to NFB 2016-04, who is responsible for making apps accessible

As I read responses to NFB resolution 2016-04, I'm reminded about the state of accessibility of universal apps in Windows 10, particularly more recent releases posted on Windows Store. While I do see potential of this platform, I'm still unsure as to whether our suggestion on improving accessibility was received and acted upon by app developers. This is more so now that Microsoft is shifting focus towards shipping Windows 10 Anniversary Update (aka Redstone 1,Version 1607), as there are certain places that are still not labeled correctly, presents challenges for some audience members and so on.
One of the crown jewels of any operating system is third-party programs. Thanks to various API's in place, Windows, OS X (recently renamed to Mac OS), Linux and other operating systems allow programmers to take advantage of possibilities offered by API's, thereby enhancing lives of people through their apps. But we're seeing a trend where quality is sacrificed in the name of polished user interface, some of which affect accessibility. So the question becomes, who should be responsible for making apps accessible?
Before answering the above question, I believe it is important for us to remember that software development is a collaborative process. If a software is going to be used everywhere, communication between users, designers, developers, testers and outsiders is essential. Users should tell software developers what they want and need; developers should be ready to listen to feedback from users; designers should work closely weith coders and users in finding a balance between functionality and appearance; and testers should be willing to act as ambassadors between users and developers in finding potential issues.
In case of accessibility of application programs, it is crucial that users, assistive technology vendors and app developers (and sometimes, operating system architects) should keep fruitful channels of communication going. Users should be willing to give feedback to app developers, telling them exactly what's going on and providing helpful suggestions. Developers should be willing to listen to feedback from potential customers, including those with accessibility needs. Finally, screen reader vendors should facilitate communication between users and developers in providing their expertise to developers on best practices, and to let users know that they are not forgotten.
First, users should be willing to learn how to submit practical and constructive feedback. Just saying to others, "I want such and such features or found a bug somewhere" does not really qualify as feedback. Ideally, a feedback communication should include the name of the app in question, steps to reproduce a problem, expected versus actual outcome and helpful suggestions or workarounds. Also, after submitting feedback, users should be willing to provide follow-up information such as clarification, thoughts on workarounds and so on.
A particular point to consider is attitude one sees when user submits feedback. If it comes off as rude, developers would not be able to understand the true nature of a feedback (remember that developers are humans, too). If a feedback was given without steps to reproduce a particular problem, developers would not be able to pinpoint the code path that causes a bug to surface. If users don't follow up with developers, it becomes just a one-way street (feedback is a multi-way stream).
Second, app developers should be willing to listen to feedback from customers, including feedback on accessibility. Although a recent NFB resolution mentions quality issues with iOS and Mac OS releases, I believe it applies to app developers as well, particularly on Mac OS, Universal Windows Platform (UWP) and other platforms, as people with disabilities are a rising market force in software consumption.
A particular serious case is Facebook UWP. Despite numerous suggestions to Facebook accessibility team and tests, as of July 2016, Facebook UWP isn't accessible (rather, introduced accessibility regressions). For example, while using Facebook UWP, under some circumstances, one cannot use object navigation and similar features in various screen readers to navigate to various parts of the app (unfortunatley, this affects Narrator users as well).
This brings us to the question posed earlier: who should be responsible for improved accessibility of apps? I would say both users and developers are involved, but I would put greater emphasis on developers. As consumers, users are responsible for providing practical feedback to app developers and operating system architects in hopes of making various parts of an app (or an operating system) accessible. Developers are also responsible for this, as they should be willing to work with users in identifying issues, learn from others and provide fixes so users of various assistive technologies can use their apps and be drawn to them.
So where does screen reader developers stand in this picture? As they are both users and developers, they should serve as communicators between users and developers and provide guidance to both parties. If app developers are willing to listen to users, screen reader vendors should encourage users to send feedback to app developers and let app developers learn from other programmers in making their apps accessible. However, if app developers are unwilling to listen, screen reader vendors should serve as an understanding advocate for users, letting fellow app developers know what's going on and offer assistance upon request from the viewpoint of a fellow developer.
I'd like to conclude by asking those debating the merits and outcome of NFB 2016-04 to not send out words out of passion. Although I respectfully disagree with the resolution (which was passed), I'm concerned that we have found ourselves sending words back and forth out of passion rather than calm reasoning. As someone who have tried public iOS betas and am a screen reader contributor, I do understand that Apple is trying its best yet has quality issues in recent iOS releases. I think rather than having perpetual flames, it is better to teach others how to give practical feedback, as this not only helps Apple, but also helps consumers in the long run. The more feedback Cupertino (and Redmond, Mountain View and others) receives, the probability that we'll meet a more polished iOS (and Windows, Android, etc.) release (and apps) increases, as users and developers have their share of responsibilities when making apps and operating systems accessible for people with disabilities.

Monday, April 11, 2016

Open letter to computer science students, faculty and others: beautiful means accessible, too, teaching accessibility design as part of computer science courses

Fellow developers, computer science students, professors and scholars, university leaders, industry observers and others:

My name is Joseph S. Lee, a former computer science student at University of California, Riverside, currently majoring in communication studies at Los Angeles City College and part of a team of developers of a screen reading software. First, I hope many of you are having a good time as you go through spring academic term (and for those who’ll be graduating this year, congratulations).
I’d like to take some time to talk to you about a subject that I’m sure some of you are talking about in your classrooms, in your business meetings, included as part of requirements analysis documents and so on: product accessibility, specifically software accessibility, or as I see it, a lack of such discussion in the educational setting.

According to one study, the number of people with disabilities is several hundred million. For visual impairment alone, the World Health Organization in 2014 estimated that there are about 285 million people with varying levels of visual impairment. Another study reports that, with discovery of new diseases and aging population around the world, we’ll witness increases in incidents of encountering people with disabilities.
For many folks with disabilities, computerized equipment’s such as mobility aids and assistive software such as screen readers have become an important part of their lives. Computerized hardware are opening the doors for employment, education and job opportunities, while assistive computer software are making strides at making lives of disabled people easier through speech and image recognition, face-to-face and computer-mediated communication, workplace collaboration and so forth. Companies such as Microsoft, Google, Facebook, Twitter and others have set up accessibility communication channels and have promised to make their products accessible to all, including people with disabilities.
However, it is not just the big corporations that should be saying all this. As a person who have tasted the power and potential of computer science despite blindness, I do know that student developers, scholars and others involved in training the next generation of computer scientists and influential programmers should also join the bandwagon and say, “we too can help people with disabilities through education, product development and outreach”. Also, by teaching student developers about accessibility, they could make an impact around the world and gain experience on working with users with disabilities by the time they receive their diplomas. Lastly, I believe that students, professors, researchers, industry observers and others should remember that design doesn’t stop at defining beautiful user interfaces and to remember the notion that beautiful means accessible as well.

First, I believe it is vital to teach students that their products and ideas will be used not only by peers, but also people from all walks of life including users with disabilities. Somewhere in the world, a blind computer user would appreciate the fact that a sighted computer science student is writing a mobile app to improve his chances of finding a job. In another part of the world, thanks to work from a team of student engineers, a deaf professional can conduct business meetings via online communication. Still in another part of the globe, an autistic child would dream of becoming the next Steve Jobs thanks to apps made by computer science students who do care about the needs, well-being and future of this child.
If the mission statement of computer science discipline is to solve problems and make the world a better place through machine-based interventions, then I think it is important for students to remember that accessibility is a problem that they have powers to solve. That is, by engaging with users with disabilities and learning to work with them, student developers will gain insight into the widespread epidemic of accessibility issues facing the globe, especially for those who cannot afford a luxury such as a tablet, computer software and a chance to navigate this vast ocean called the Internet. With the rise in popularity of computer science education in many countries and with the demand for software developers on the rise, I believe today’s computer science students are better equipped to tackle accessibility problems.

Speaking of accessibility problems, as a software developer working on screen reading software, I’m disappointed at the current level of awareness of accessibility among students, faculty, university leaders and industry observers despite outreach efforts by many. There are numerous events promoting accessibility for people with disabilities such as annual CSUN conference, a number of companies have talked about accessibility improvements, a number of countries have shown interest in legislations or court cases involving inaccessible websites and devices, and there is even a special interest group in Association for Computing Machinery (ACM) that deals with accessibility.
Although students and faculty could look up information on accessibility issues in spare time or as part of research, the idea that accessibility is a growing trend in software design isn’t addressed in the vast majority of software engineering lectures. We can spend all day talking about requirements analysis, product lifecycle management, unit testing frameworks and so on. But I believe that today’s software engineering courses, let alone any computer science course dealing with topics such as operating systems, artificial intelligence and so on cannot ignore accessibility. In fact, accessibility considerations are one of the cornerstones of user interface researches around the world, scientists are researching human-friendly AI’s, operating system vendors are providing tools to make lives of people with disabilities easier and so on. Given that incidents of people with disabilities is on a rising trend, coupled with the fact that more and more young people (late teens and early twenties) are discovering the art and science of programming, I believe that it is time that high schools, colleges and universities should start thinking about incorporating accessible product design and engaging with users with disabilities as part of their curriculum.

Lastly, I would like to address the notion that beautiful design doesn’t necessarily mean accessible in the context of software user interface and assistive technologies. In the past, because of lack of awareness and support from operating systems, it was cumbersome to use highly visual software package such as presentation software, collaboration tools and so forth. Nowadays, thanks to continued advocacy from users, developers and observers, we’ve seen vast improvements in accessibility of software products. Operating systems designed for desktops, laptops, tablets and so on such as Microsoft Windows, OS X, Linux and others include basic assistive software as a standard, while others provide API’s (application programming interfaces) such as UI Automation for use by assistive software such as magnifiers, screen readers and others to impart screen information such as color, location, live information and so on. Mobile devices and operating systems such as iOS, Android, Windows Mobile and others aren’t exceptions anymore - computer users with disabilities are scrutinizing mobile device and OS releases to locate accessibility regressions, and companies such as Microsoft and Apple have publicly acknowledged accessibility issues in preview software thanks to feedback from users of assistive software. Because of these improvements, what might have been inaccessible is being transformed into something that is accessible for all, including highly visual software such as Microsoft PowerPoint, thus enforcing my view that beautiful means accessible too, something that, I think, not many computer science students are introduced to.

In closing, I would like to pose the following questions to readers of this open letter:
·         For students and student developers: I’m sure many of you would like to see your ideas come to life and want your next app to become a hit in various app stores. If you want to target all users, does this mean excluding people with disabilities in order to achieve beautiful user interfaces and experiences? Many years ago, I took the same path like you did or are doing: discovering art and science of programming, data structures, algorithms, operating system concepts and so on. Please remember this: somewhere around the world, peers like you who have disabilities crave what you are doing and are searching for solutions to make their computing lives easier, and as the next generation of computer science and information technology professionals, you have the full power of your education at your disposal to help people like me who have disabilities. I know it won’t be easy to think about accessibility in the beginning, but trust me: learning about accessibility issues, causes and solutions during product design can help you in the long run (there are developers with disabilities like me who can assist you).
·         For computer science faculty and university leaders: First, thank you for teaching me and others about the beauty of computer science discipline. Although we didn’t understand some concepts during lectures, we’re seeing various concepts come to life as we gain experiences. As a computer user and a software developer with a disability, if there is one concept I think students should master, it would be user-centric design, particularly accessibility. I would like to kindly suggest implementing a way to talk to students about accessibility, either as an overview course, during discussions, labs and so on. If some computer science students cannot obtain jobs after graduation, how much more would it be for computer users with disabilities who cannot afford a way to improve their lives through computerized solutions? Please consider teaching students about importance of engaging with the community, particularly with people with disabilities as students lay out their future and use their talents to make the world a better place for many.
Thank you.
Joseph Lee
Former student of computer science, University of California, Riverside (2008-2014)
Student of communication studies, Los Angeles City College (2015-present)
Translator, code contributor and community add-ons reviewer, NVDA screen reader project (, June 2012-present)

Monday, March 21, 2016

If I die tonight 2: showering forum members with love and mercy, willingness to step down from position of power, an open plea to moderators of blindness forums

Dear friends, colleagues, fellow mailing list moderators and forum members:

Continuing from my previous post on my decision to step down from various NVDA community positions, I’d like to talk about something that might be sensitive to some: mailing list administration, what it means to love and serve members and willingness to let go.

As I was thinking about death, legacy and future leadership, I was reminded of several definitions of death, both secular and sacred. To some, death is “… the next adventure …” (Albus Dumbledore), “… stepping into eternity …” (various songs) and “… time of judgment …” (Bible). Some have speculated that we end our existence once we die, and others claim that we possess a soul (I fall into the latter camp).

As I was thinking about death and praying about it and my legacy (see the previous blog entry), I also thought about forum administration, leadership position and loving the members of forums. As a person who have served in both roles (member and moderator), I know that moderating a list is a thankless job (I myself enjoy this position) and have witness disintegration of lists due to questionable conduct from members and moderators, I also know that leadership position doesn’t come with free lunch – it requires sacrifice, understanding and so on.

To me, a leader (especially that of an online forum) is one who showers forum members with love and is ready to serve the forum and its members. Showering members with love may take various forms, including researching a question on behalf of a member, arbitrating disputes, protecting members and so on.

However, I’d like to add one more characteristic to this list: willingness to let go. Power is both a helpful and a destructive force. If exercised correctly, power brings stability, prosperity and harmony. If misused, power makes leaders corrupt, causes distrust and disintegrates a community (here, I refer to mailing lists and forums as communities). If the moderator believes (or is compelled by members and outsiders) that they have abused their position or recognize that it is time to move on, a moderator should be willing to let go, knowing that they served their part (too much attachment to a list, as I found out, causes moderators to feel uneasy and stressed over the future).

Another characteristic I’d like to add is recognizing members as equal partners, accountable and answerable to people, and remembering that reputation of a forum rests on them and members. Some moderators say that a mailing list or a forum is the property of the forum owner; that is, an owner can do whatever he or she desires and run a list that best suits them. For example, without consent from the entire list, an owner could close a list, or the owner can expel members simply because they believe members are running rival lists or they don’t like them (without a cause).

I’d like to kindly (and with heavy heart) disagree with this attitude of running this kind of lists (with owners running the show alone):

1.       Members should be seen as equal partners in decision-making. It is better to consult members and make informed decisions than jeopardize the reputation of a list through decisions from their own, especially if it was an inappropriate choice.
2.       Leaders should be recallable. I believe that leaders are there to love and serve the list, and because of this, they should be held accountable and answerable to members, even if it means voting to remove a moderator.
3.       Leaders and members should remember that the reputation of a community depends on them. To some, reputation of the user and developer community will draw or alienate them to and from products, especially if a support list has publicly viewable archives. Some would say forum content is the crown jewel of a forum, but I believe the people are also important.

Some people may ask, “is it a good idea to let members criticize leaders?” Some moderators would say “no” because they wish to give outsiders an impression that they can manage a list. Some would say “yes” because they tolerate descent.

I myself think it should be allowed: criticism is a great thing if done correctly (incorrect criticisms include attacks on persons, flaming and so on). Although it is painful to digest in the beginning, it saves moderators from making wrong decisions, and in some cases, allows moderators to revisit their past decisions or compromise with members. It also allows vulnerable side of moderators to come out: genuine criticism allows moderators to think critically about what they’ll say, how they’ll act, why a member or two made this comment and so on.

Going back to the discussion on letting go and related concepts: sometimes, too much attachment to a list changes moderators (and I’m speaking from experience and after thinking about the answers to my prayers). First, it causes moderators to become extra vigilant against attacks on their lists. If a list is attacked (for example, criticisms from outsiders that could be misunderstood as an attack), they’d spend a great deal of energy “fighting” the attackers and often fail (there were cases where it has succeeded). For example, there were numerous debates on BrailleNote and Braille Sense lists regarding the products and the support lists, with folks from HIMS (Braille Sense list) defending the HIMS list (and I myself wrote messages to the BrailleNote list (when I was the chief admin there), saying they should exercise patience).

Second, moderators of lists become defensive when one or more members find themselves a target of attack. Because moderators are passionate about the reputation of a list and they feel at home when they sit on the moderator’s chair, they would believe that they need to be the ones defending their members and going so far as planning a counterstrike. Unfortunately, this is caused by passion, not reason (I found this out the hard way when one of the members of a Windows 10 list told me he was being harassed by someone (outside), then I formulated a plan to go after this person (a head admin on another list) by sending a letter to this person with mixed success; when I appealed to moderators of various lists, they told me that it is better to move on, which was the answer I needed (and they were right; to them I send my gratitude).

Third, moderators (and sometimes members) become so overprotective to a point where they’ll not teach their successors how to run their community. Without means of passing on their knowledge to the next generation, successors (moderators and members) will not find answers on dealing with crises, misbehaving members and so on. The state of NVDA community and the users list I described earlier fits this definition: in an effort to make the next generation suffer less, I have shielded them from how to handle crises to a point where I found myself saying, “I fed them fish all day instead of teaching them to fish.”

Fourth, moderators will exhibit tendency to advertise exclusive expertise. That is, they believe that only they should be the one answering all questions, respond to comments, defend a list and so on. This is prominent on lists where moderators do have reputation for delivering creative content (tutorials, websites, blogs and so on). Some moderators will stipulate that their content should only be sharable by members of his or her list, which is a sign of overprotectiveness and exclusivity (note that I do believe that, in some cases, exclusivity is the only option).

Before I go any further, we need to pause here and think about the following situation: a moderator of a list, who is known for producing helpful tutorials, says to members that his tutorials should not be sharable to outside members. In a way, this is a valid reason, seeing that this moderator would like to protect his publishing rights and in order to conserve bandwidth. However, I think this is a sign of advertising exclusive expertise: only members gets a chance to listen to his explanations, the tutorial set could be downloaded and distributed by anyone who may not give proper attributions (and I did see a case where the moderator did come after someone, thinking that this person post was an exact word to word copy of his tutorials) and so forth. Note that I do respect this moderator for what he does and know that his tutorials are good (no ill feelings here, and if I came across as such, I sincerely apologize).

Lastly, moderators become focused on succession plans. Worried about the future and the reputation of a list, leaders would draw up elaborate succession plans should they become unable to carry out their duties. Succession plan is good to preserve continuity, but focusing too much on that not only drains the energy of moderators, but also puts unseen burdens on moderators, members, the forum itself and outsiders: stress, content clutter, stricter conformity, tendency for members to act as moderators (without appointment or elected) and so on.

As for me committing these, I confess that I’m guilty of them all: overprotective, defensive, drawing up elaborate succession plans and so on. I do know that I did make mistakes such as not consulting list members when making difficult decisions, showing rage when I’m known to be calm and so forth. Only by the grace of God and through encouragement from community members I can lift up my face and say I’m ready to move on.

To members of forums I moderate or have moderated (NVDA International Users List on Groups.IO, Win10 Forum for screen reader users, BrailleNote Users list and others): I’d like to request mercy and forgiveness from you. On behalf of many forum administrators out there, I’d like to sincerely apologize for abuse of power and not considering members as equal partners. I’d like to sincerely apologize for showing contradictory traits at times, not showing love and mercy when I myself said leaders should show love and mercy, being so overprotective when I ought to teach next generation of leaders how to resolve crises and so forth.

To my fellow forum moderators and administrators: I’d like to sincerely appeal to you (from bottom of my heart) to consider members as equal partners in decision-making, not ignoring critics, and showing willingness to let go of your positions when it is time to do so. Please shower members of your forums with love and mercy, show that you too are vulnerable, show humility, and have an attitude of servants (to always serve, not to be served always).

To members of the blindness community, to sighted folks and others (especially CSUN 2016 attendees): I know I’ll get criticized for this (I’ll happily accept them), but this MUST be said (in hopes of starting a dialogue):


Joseph s. Lee
Head list representative, Windows 10 Forum for screen reader users (
(soon to be former) Moderator, NVDA International Users List (
(former) Head admin, BrailleNote Users mailing list (


If I die tonight 1: legacy, letting go of a community I love, serve and was too attached to

Dear friends, readers and supporters around the world:

At least once in our lifetime, we confront the following question: if we die, who’ll carry our legacy forward, and what exactly is death? I myself have experienced this moment today, what I found out and my plans. Because I will be touching a subject that might be sensitive to some readers and quite extensive, I’ll divide this question into two parts: part 1 will address death, legacy and letting go, and part 2 will discuss why I made my decision and my philosophy regarding administering and serving a community.

In case you are wondering why I’m writing this, it’s because the following statement will need further explanations: I will be stepping down from various NVDA community positions by end of this year. Let me tell you why:

As I lay in bed (dealing with a common cold and with muscle aches) and listening to some piano music, I was struck by an intriguing thought: if I die (as soon as now, sometime today or tonight), who will carry on my legacy? Although I thought about this question in the early months of NVDACon planning, it came stronger today: perhaps this week is CSUN conference (31st annual technology for people with disabilities) and missed going there, perhaps because I’m preparing for midterms, perhaps I’m tired after busying myself with NVDACon planning or what not. Of these, I think the thought of NVDA’s tenth anniversary celebrations, coupled with recent activities on various mailing lists have made this a stronger question today.

So I decided to meditate and pray over this question:

Dear God, if you recall me (if I die) tonight, who’ll take on my legacy? Who’ll take care of my family, friends I love, the communities I love and serve (including NVDA community and the Groups.IO Win10 forum)? Is there someone who’ll love the people and the communities I serve through various positions, someone who’ll shower them with more love than I did? Am I willing to let go of my position if that benefits the community in the long term?

I also added:

Dear God, what would your Son (Jesus) do if given this situation? I do know that he came and died many years ago to save me and others, and I know that he did it willingly. I look forward to a personal counselling session with you through your words

Surprisingly, the answer was simple yet counterintuitive:

Don’t worry about tomorrow, because tomorrow will worry about itself. Remember what Paul said before his execution: “I’ve finished my race”. Although he didn’t say that, he was talking about today, the job he was given. You’re worried about tomorrow because you are too attached to the communities you are serving, and one way to not worry about tomorrow is letting it go – give it to the hands of the next generation.

At first, I didn’t understand what this answer meant, so I prayed again:

But God, letting go means a lot to me. Although it would mean less stress and one less list to moderate, I don’t know who’ll take care of the communities I love.

An unexpected reply:

Why did Jesus die on Good Friday? Did he do it willingly, or because his Father told him to? He did it because of both reasons: as the Word, he was present when the world began, thus he had powers over creation and took part in a grand plan to save you and others. He did it because he have subordinated himself to God, as his prayer before his execution shows. He knew what was better: dying (or sacrificing himself or letting go) to save everyone.

Not only this reply answered my original question, it answered another question, which is the subject of the next blog entry.

In summary, the reason why I wasn’t ready to confront the question of dying and passing on my legacy was the fact that I was too attached to the community I love and serve, too much attachment to a point where I set out succession plans (even before it happened). Sometimes, I felt that I should be the one to do something (including giving voice to the voiceless), stemming from the fact that I can become forceful and zealous for a cause. I also thought that the next generation should have an easier time managing a list, running a project and so on, which (and I admit now) led to failures of some initiatives (as they say, I was feeding fish to the next generation instead of teaching them to fish). Lastly, I haven’t seriously considered stepping down if it’ll improve a community in the long run until now (which naturally connects with the next blog post on leadership and mailing list/forum administration).

To correct these errors and to serve as a reminder to myself that I’m vulnerable and to show love to communities I love and serve, I decided upon the following:

1.       NVDACon International 2016 (April) will be the last conference I’ll serve as the head organizer. I’m glad for the fact that we do have passionate people who are more than ready (I think) to embark on this journey.
2.       I’ll be stepping down from my moderator position on NVDA users list (on Groups.IO) effective May 31, 2016.
3.       I’ll pass on my position of quarterly community add-on release coordinator effective August 31, 2016.
4.       NVDA 2016.2 tutorial will be the last what’s new tutorial I’ll produce, seeing that there are others who are better at producing tutorials than I am.
5.       I’d like to request that someone else who have better technical knowledge and teaching skills than I am to produce 2017 edition of Welcome to NVDA tutorial series.

I’m not doing this lightly: for some time now, I thought it is time to pass on the baton of list administration to someone from the next generation who’ll love the list more than I do and to teach them about effective ways of running an international list. I also believe that it isn’t right for one person to start organizing an international conference such as NVDACon (I originally envisioned various regions rotating around to organize NVDACon, and I’d like to start this process this fall, starting with regional NVDACon’s around the world). Although the acts of planning, announcing and releasing quarterly maintenance versions of community add-ons are tedious, it is rewarding in the end and is something that people should put in their resumes. Producing tutorials is a hard job, but it is also rewarding in the end – you get to learn how something works.

I’m not doing this to receive publicity; I’m doing all this because I love NVDA community, and know that letting myself go is something that’ll benefit this community for a very long time (perhaps the community would turn out influential advocates in the next ten years or more). As it stands, I believe I’ve done my best to love and serve this and the wider community. I do admit that I made numerous errors (both small and huge) and that I’m vulnerable; sometimes seen as an influential advocate, sometimes seen as a ruthless list administrator. In the end, what matters is the fact that tomorrow will worry about itself, and I should do my best in the job I’m given that should be accomplished today, even if it means stepping down from various positions in favor of the next generation.

To the next generation of NVDA enthusiasts: first, thank you for your continued support and enthusiasm. I’m sorry that I fed you fish all day long – I should have been better and teach you to fish. Although I’m stepping down from leadership position, you are more than welcome to ask me and other enthusiasts questions. Stepping down from the position of power doesn’t mean I’m leaving the wonderful NVDA community: I’ll try my best to serve in my new roles, whatever they might be. Thank you.

Joseph S. Lee
Translator, code contributor and community add-ons reviewer, NVDA screen reader project
(to be former) Chair, NVDA Tenth Anniversary Planning Committee
(to be former) Moderator, NVDA International Users List

Thursday, March 3, 2016

Open letter to the NVDA community: Hartgen Consultancy, we owe you an apology, important reminder for the NVDA community

To Hartgen Consultancy and the NVDA community,

First, I’d like to commend Hartgen Consultancy for their excellent support for screen reader users and providing products that are empowering many blind people around the world. Also, I’d like to commend the NVDA community for your continued support for NVDA and championing open-source development. The impact of work done by both entities can be felt across the world.

As I read Brian Hartgen’s article on the backstory of Dictation Bridge, and being familiar with articles from Chris Hofstater and with the Dictation Bridge project itself, I believe we the NVDA community owe Hartgen Consultancy a heartfelt apology. At the same time, I would like to take this time to seriously remind the NVDA user community (especially those on social media) that your attitudes, words and actions could have impact on reputation of the screen reader itself.

First, to Brian: As I read your article regarding backstory of Dictation Bridge and your defense, I felt uneasy regarding the treatment you’ve received. Although I do understand where Chris is coming from based on interaction between you and the unnamed beta tester, I felt more uncomfortable after reading how some on the NVDA community have reacted to your article and sent harsh words via social media. Although I do understand their message (looking at facts and trends, power of crowdfunding, price and so on), I believe we the NVDA community members should have done better when it comes to being courteous and professional.

As a code contributor to a screen reader and a fellow community and user side advocate, I’d like to take this time to apologize on behalf of the NVDA community. Certainly the actions and words used by some in our community are unacceptable, especially against a reputable source who can give them much needed information and can bring unique perspective to NVDA development (as you pointed out in your GPL article). Keep up the good work you are doing not only for users of JAWS and NVDA, but also for the wider blindness community.

To the NVDA community: If there are three things I will not accept from this community, it will be derogatory name calling, concentrated harassment and the idea that we should enforce our beliefs and practices of open-source and free availability. Concentrated harassment, as we’ve seen today on Twitter, not only hurts the harassed, but also jeopardizes the reputation of NVDA itself. Name calling, especially derogatory ones such as “shark” for JAWS, isn’t funny when you look at it from the perspective of the targeted: although it might be a joke, to some, it is a statement that seriously questions their self-worth. Open-source and free availability is good if exercised correctly, but enforcing that belief on a product with incompatible licensing terms or code that cannot be shared due to restrictions isn’t going to help us achieve our goals (worse, it could backfire, citing brand image, customer relations and so on).

Would anyone use a product where people are known to harass those who use other products? Would anyone come and talk to a representative of a community if the community in question has a history of name calling? Would anyone be persuaded to join the bandwagon if onlookers get an impression that all we do is go around and enforce our belief of open-source and free availability everywhere? As it stands now, the reputation of this community, and in extension, NVDA itself, is in jeopardy due to our careless words, actions and attitudes over the years. And don’t take this lightly: the reputation of NonVisual Desktop Access is shaped by you: attitudes, words and actions, as much as it is shaped by your enthusiasm, support, promotions and help to those who really need help using NVDA to its full potential.
Fellow NVDA community members, as we’re celebrating NVDA’s tenth anniversary this year, let us take a moment to reflect upon our attitudes, words and actions. Please don’t forget this: what makes NVDA special and worth trying (or moving away from it) is us: users, developers, supporters and others who are part of this community. Please don’t ruin the reputation of this community-driven screen reader (I myself would feel uneasy if I’m in a similar situation like Hartgen Consultancy, and so would NV Access and others in this community).


Joseph S. Lee
Translator, code contributor and community add-ons reviewer, NVDA screen reader project
Chair, NVDA Tenth Anniversary Planning Committee
Moderator, NVDA International Users list

Wednesday, January 27, 2016

Windows 10 Redstone: Rocky start, build 14251, OneCore and other musings

Note: Some of the things discussed are quite technical.
It's been over two months after last posting about Windows 10. For the past two months, I've been busying myself with some NVDA add-ons work, testing new Insider builds and have reorganized directory structure on the web server where and sites live.
In terms of Windows 10 Insider builds, the past six weeks were rocky in terms of accessibility. The issues I and other Insiders observed - browse mode/virtual cursor not working in Microsoft Edge, object navigation issues and so on - were addressed as of today's Insider fast ring build (reference at the end of this post). But there are other important things to talk about Redstone wave 1 (RS1) - OneCore, why deep changes breaks things, performance and debugging and so on as they relates to user experience and accessibility. Along the way I'd like to iterate what Microsoft may need to do to increase Windows 10's market share before the free upgrade offer expires.
Redstone and OneCore: Building pieces for the future
Redstone is a mineral/electronic circuit found in minecraft used to build all kinds of materials. It is said that one can assemble these materials and build more complex materials (one example was that of a roller coaster).
Whereas Threshold marked the entry of Windows 10 and the concept of Windows as a service to the masses, various sources and posts from Microsoft executives (particularly Gabriel Aul, CVP of Engineering Team) indicate Redstone (the next Windows 10 upgrade wave) being a deep change to Windows NT internals. This stems from the fact that there were talks about project called OneCore, unifying the NT kernel code so it can run on all kinds of devices: PC's, tablets, smartphones, sensors and other things and so forth. In order to talk about why OneCore is a hot topic for some, let's talk about the evolution of two Windows kernel families: Windows NT and Windows CE.
Both Windows NT and Windows CE are a family of Windows releases targeting different audiences: NT was designed for PC's and servers, whereas CE was designed for embedded systems, pocket PC's and alike. Both families (technically, kernels) have several things in common:
* Released in an era where computing power was limited: Windows NT (1993) and Windows CE (1996) were released at a time when disk space, RAM and CPU features were limited compared to today. In 1993, Intel introduced Pentium (sometimes called 586) that introduced interesting features, yet many PC's of 1993 were using 80286 or 386. Likewise, a typical pocket PC from 1996 would have sported just a few megabytes of RAM, and none were using multicore processors (the concept of multiple CPU's on a single chip were being researched by computer scientists then).
* 32-bit kernel: Both Windows NT 3.1 and Windows CE 1.0 were 32-bit kernel, thus it required a 32-bit processor such as Intel 80386 (NT) and ARM 32-bit and MIPS R4000 (technically a 64-bit CPU but ran in 32-bit mode).
* Portability: Windows NT 3.x supported X86, DEC (Digital Equipment Corporation) Alpha, MIPS and powerPC, and Windows 10 supports X86, X64 and ARM (32-bit only so far). Windows CE, just like its NT counterpart, supports X86, ARM and other processors.
There were notable differences, however: Whereas NT kernel (ntoskrnl.exe) allows programs to use as much memory as it desired, Windows CE kernel (nk.exe) used a shared 32-bit address space, with programs limited in terms of memory consumption (from 1.0 to 5.0, CE programs could not consume more than 32 MB of memory, later relaxed starting with CE 6.0).
Although both operating systems had good design to begin with, what prevented them from being unified were hardware limitations, intended market and internal API's. It took more than a decade for x86 processors to cut down on power usage that is comparable to today's ARM processors, and smartphones weren't widely adopted by businesses until late 2000's. Also, due to internal design differences, API's used by these operating systems would not be unified until a port of Windows NT kernel became available with the release of Windows Phone 8, which kicked off kernel unification process that is still ongoing.
What I believe OneCore is: kernel and UI unification
Several components are involved when running an operating system: kernel, API's, services, security subsystem, user interface and users. Of these, I would like to focus on two areas that stand out: kernel and user interface.
Based on user interface differences between Windows 7, 8.x and 10, I believe part of OneCore to be user interface unification subsystem. If you examine Windows 8.x's interface carefully, you'll notice that certain things came from Windows Phone, including a dedicated PC Settings app, Start screen and others. This continues with Windows 10: many UI elements from Windows 10 comes from Windows Phone (now Windows 10 Mobile).
But in order to let Microsoft execute their strategy of one Windows everywhere, it was necessary to bring some PC-like interface to Windows 10 Mobile. This came in the form of Continuum - when a Windows 10 Mobile device is connected to a dock, its interface changes to that of a typical Windows 10 PC.
But OneCore isn't just UI unification: in order for a great UI and user experience to come to life, internal Windows components (specifically, Windows kernel) must also be unified. Can users use a product with good UI when its underlying foundation isn't stable? Hence, Microsoft spent the past few months perfecting OneCore kernel (it is still built on top of NT design, as it still comes with ntoskrnl.exe and friends). A clearer evidence that OneCore isn't just UI but also a kernel unification is the build string for the latest Windows Insider builds (10.0.14251; this comes from Windows Phone family, and as far as features are concerned, it's mostly bug fixes and minor things here and there compared to say, from 10240 to 10586).
So what happens if we put OneCore and Redstone together? I believe it indicates a bold strategy from Microsoft: one Windows everywhere, one Windows kernel (one core) across millions and billions of devices with the kernel and UI adopting to functionality offered by diverse devices. Thus, I expect Redstone wave to be quite a fundamental change, a change that will (hopefully) let Windows become an integral part of our computing lives as outlined by Microsoft (perhaps not for a while).
Redstone and accessibility: a rocky start
When I signed up for Windows Insider program back in October 2014, I've set out to find out and talk about how accessible these builds are. just like Threshold (Windows 10 RTM/1511) days, I'll continue to report on accessibility of Redstone on this site, mostly to let screen reader users know what's going on. And what a good way to start than talking about a rocky start, as we'll examine some building pieces and regressions here and there that were resolved in build 14251.
Accessibility regressions as a result of OneCore work
As mentioned above, Microsoft spent some time reworking some internal features of Windows 10. As a result, accessibility regressions were observed in earlier builds (now resolved).
A particular concern was UI Automation and screen reading. Due to UIA issues, some screen readers (particularly NVDA) had a hard time working with UIA objects. A good example was inability to use object navigation commands in Settings app and inability to use browse mode/virtual cursor facility in Microsoft Edge. Note that Naarrator was fine during this time (used Caps Lock+left and right arrows to move between controls). This is now gone as of build 14251.
Apart from history shortcut in Edge (right-clicking back/forward button), there aren't features that are new. Hopefully Microsoft will add new features and at the same time work on accessibility improvements to old and new features to make Windows 10 more appelaing for those using assistive technology.
Things Microsoft should do before free upgrade expires
In addition to accessibility improvements, I believe Microsoft should announce a feature that would entice users to upgrade to Windows 10 before the free upgrade offer expires. Edge extensions is one such feature, but I think a better engagement with those using universal apps ecosystem could help, seeing that more and more developers are adopting this paradigm.
Concluding remarks: Performance of and debugging pre-release software
Some people claim that Windows 10 Redstone builds are slower than usual. This is expected, as signing up for Windows Insider program means you are testing pre-release software (more so now that fast ring became a lot faster). In addition to ever-changing user interface and internals, debugging code will affect performance - developers of any software (including I, a code contributor to a screen reader project and author of several add-ons for this screen reader) write debug routines when writing software (a software that works 100 percent as advertised without debugging is extremely rare).
Thus, to reiterate what Gabe Aul and others following Insider builds have said: due to speed of releases, fast ring builds will be buggier (this includes performance and accessibility). I would go so far as say Insider fast ring builds are public alpha-level code, while slow ring is a polished beta. As far as accessibility is concerned, fast ring builds may introduce regressions, as we've seen for the past few weeks. As always, use Insider builds with caution (I and others do not recommend using Insider builds as your primary setup).
Until Redstone gets an exciting feature or status of accessibility changes...
1. Insider build 14251 announcement:
2. Windows CE (Wikipedia):