The shortcut fn-F7 toggles the tab key behavior anywhere in Mac OS X, including on the login window (called "Full Keyboard Access" in System Preferences, this determines if tab cycles through text boxes only, or all controls). However, toggling it on the login window is just temporary, and it will reset to the default (tab between all controls) the next time the login window is used. Toggling it when logged in will be persistent for the user but not affect the login window.

I imagine this setting is not persistent because, per OS X's security model, the non-logged-in user doesn't have Administrator privileges to change what is a system-wide setting. But is it possible to make this change persistent with another method?

The user-level preference can be accessed using defaults:

# 0='Text boxes and lists only'; 2='All controls'
$ defaults read -g AppleKeyboardUIMode
$ defaults write -g AppleKeyboardUIMode -int 2 

...and the preference is saved to the file ~/Library/Preferences/.GlobalPreferences.plist. My assumption would be that this can then be set system-wide using sudo:

$ sudo defaults write -g AppleKeyboardUIMode

Oddly, this preference can be set and recalled, and the file /Library/Preferences/.GlobalPreferences.plist does indeed exist; but the preference does not seem to ever actually be written to this file. Needless to say this does not have any impact on the login window behavior.

This setting seems generally undocumented so perhaps someone knows of a different interface to it?

For those curious, the reason I want to change this is because we use the com.apple.loginwindow AdminHostInfo DSStatus preference in our environment, which adds a colored indicator next to the username field showing status of the domain server connection. As of 10.11, this indicator dot accepts keyboard focus in the default mode (even though it doesn't really accept any interaction), preventing one from simply tab-ing to the password field which is a frustrating user experience.

  • Your technique defaults write -g AppleKeyboardUIMode -int 2 works for me in OS X 10.12. – JS. Dec 13 '16 at 23:34

You must log in to answer this question.

Browse other questions tagged .