Seeing Screens Differently

December 2nd, 2015     Reading time 3 min

An interesting thing happened this weekend that allowed me to fully appreciate what it must be like to use a computer without the benefit of sight.

It all Started With a Broken Display

I have a nearly new Macbook Pro that has been seeing action in some rough circumstances of late, and while a relatively rugged machine, it is still a pretty delicate piece of expensive consumer electronics.

As the result of carelessness and daredevilry it ended up with a fancy Retina display of the busted variety.

I have multiple machines, so using this particular one as desktop until I can replace the display has worked out thus far with some minor annoyances here and there mostly related to having only an external display available.

Did You Mean Upgrayedd?

Recently however, I was prompted to upgrade an application that makes use of a kernel extension.

This application has previously never given any issue, so I proceeded with the upgrade. Given that I was using the machine that evening and didn't want to be interrupted further, I elected to not restart when prompted to do so.

Once I was ready for sleep later, I hit the Restart button on the installer dialog, powered off the external display and called it a night.

What Happened?

That's odd, I thought the next morning; when I sat down to some usual daily activities, I noticed that the machine was no longer powered on. That was the first sign of trouble and the first step in a long path of troubleshooting.

I powered up the laptop — GOHHHHNG... so far, so good.

However, the external display did not spring to life as usual, and the indicator on it blinked away while the on-screen display showed that it was still seeking signal from the laptop.

Hmm, let's try turning it off an on again! Same behavior. Immediately, I did a few basic hardware level things. I reset the SMC with ⇧⌃⌥ plus power. I powered on with ⌘⌥-p-r and let the system restart once more...

Nothing.

Well this mystery was sure deepening.

I let the machine go and jumped onto another system, ran a quick nmap and noticed no additional devices besides the ones I could account for on the the network.

That's when it hit me: the upgraded application's kernel extension was probably interfering with the system's bootup! (the old "what changed last?" question)

Further Debugging

I immediately tried booting into safe mode by holding ⇧ while powering on and waiting for the external display. Nothing happened, so I figured that external displays probably do not work in safe mode. As a last resort, I tried Recovery Mode with ⌘R while powering on.

I got a sync on the external screen, and a simple solid gray screen. Within seconds, a nice voice said, "To use English as the main language, press the Return key". So here I was, in the recovery mode, but unable to see anything!

I closed the lid on the machine and voila! There was the recovery mode interface staring back at me. At this point, I knew that I could beat this issue. There was just one little problem...

I had no external keyboard or pointing device on hand.

The Fix

My plan was to disable the rogue kernel extension so that the machine could normally boot again. At first I was tempted to obtain an external keyboard and mouse so that I could keep the lid closed and proceed with my plan.

Then, I though why not try to have the computer help me fix it? and with that, I proceeded to enable VoiceOver with ⌘F5 and follow its lead with the laptop open by using nothing but keyboard navigation.

The steps were roughly as follows:

  1. Open Disk Utility
  2. Mount / unlock my primary disk
  3. Open Terminal
  4. Locate and remove the offending kernel extension
  5. Reboot

All of the above was carefully performed with a bit of trial and error over the course of approximately 10 minutes. During this whole time, I was constantly mindful that this is what it is like for visually impaired persons to use a Mac every single day.

After the reboot, my trusty Macbook Pro was back in action and I found myself both completely proud and profoundly humbled by the experience.


DISCLAIMER

This is a personal website comprised of personally held opinions. All content provided on this website is for informational purposes only. Brian Shumate makes no representations as to accuracy, completeness, suitability, or validity of any information on this website and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis. Terms are subject to change at any time and without notice.

F694 4B5C AC91 63BF E4ED F805 8A71 9EF1 2051 27B8

This is my current personal GPG public key fingerprint and QR code link to my public key on the MIT PGP keyserver.Joseph Brian Shumate GPG key fingerprint