{"id":51,"date":"2005-11-03T12:03:08","date_gmt":"2005-11-03T19:03:08","guid":{"rendered":"http:\/\/www.red-sweater.com\/blog\/?p=51"},"modified":"2005-11-03T13:42:53","modified_gmt":"2005-11-03T20:42:53","slug":"keychain-inaccessibility","status":"publish","type":"post","link":"https:\/\/redsweater.com\/blog\/51\/keychain-inaccessibility","title":{"rendered":"Keychain Inaccessibility"},"content":{"rendered":"<p>Apple&#8217;s 10.4.3 update includes a nice surprise: the search field for the Keychain Access application is now case-insensitive! How many times I&#8217;ve fumed and fussed about this shortcoming. At last I can search for &#8220;etrade&#8221; and find a note called &#8220;ETrade info.&#8221;<\/p>\n<p>\nThough vastly improved, by no means is the Keychain Access application perfect. In fact, this application and associated technologies are one of those &#8220;treasure troves&#8221; of undesirable behaviour. Often while looking more carefully at an unfortunate behavior, with the intention of reporting a bug, my attention ends up snowballing into a series of observations of how an application could be better designed.<\/p>\n<p>\nWith Keychain Access, a major area it is still lags in is the keyboard navigation department. Now that I can easily search my keychain items, it would be nice to be able to do so without ever reaching for the mouse. At this point I have a keyboard shortcut set up to open Keychain Access, and from within the application I can press Cmd-F to start a new search. But when I see the beautiful shining result in the filtered list, there&#8217;s no way to navigate back to it! Pressing Tab from the search field does exit the search field, but it switches focus to the &#8220;Keychains&#8221; sidebar table. Who wants to navigate to that? Pressing Tab again switches focus to the &#8220;Category&#8221; table. Arrow-keying through the various items in this table causes a live update of the main table, but no amount of tabbing will get you there. It&#8217;s a &#8220;next responder dead end!&#8221; (Radar <a href=\"rdar:\/\/problem\/4327828\">4327828<\/a>).\n<\/p>\n<p>\nOnce I&#8217;m focused on the main table, there are other hiccups. It took me a while to figure out that I can in fact bring up the secure item&#8217;s &#8220;info dialog&#8221; by pressing Cmd-I. This shortcut is attached to little &#8220;i&#8221; button at the bottom of the screen, and unfortunately is not available from any menu item. The friendliest way to handle this would be to have the tableview interpret &#8220;return key&#8221; as a signal to &#8220;open the selection.&#8221; The return key is often interpreted as a request to either open or edit a selected item. In this case, by opening the Info dialog, it would do both. (Radar <a href=\"rdar:\/\/problem\/4327871\">4327871<\/a>).\n<\/p>\n<p>\nBut anyway, at least I can get info! The fun stops there, however. I am looking at the info window, but the thing I want to see: the secure note, web password, whatever, is hidden from me. I can see the checkbox that needs to be clicked to reveal the secrets, but I soooo don&#8217;t want to reach for the mouse. There should be a &#8220;Show Secrets&#8221; keyboard shortcut for any secure item that has such a checkbox. (Radar <a href=\"rdar:\/\/problem\/4327842\">4327842<\/a>).\n<\/p>\n<p>\nIn the process of trying to figure out whether there was a convenient shortcut for &#8220;show secrets&#8221; in the info dialog, I managed to stumble into accidentally editing the item. When I closed the item, a dialog came up asking me if I&#8217;d like to save the changes. I tried the typical &#8220;Don&#8217;t Save&#8221; shortcut: cmd-D. No such luck. The &#8220;Save&#8221; button is throbbing blue so its keyboard shortcut is taken care of, but the &#8220;No&#8221; button seems to require a manual mouse click. As a long-shot try, I press &#8220;Cmd-N&#8221; to match the &#8220;No&#8221; of the button&#8217;s text.  At first this seems to work, but instead something very fishy happens. Pressing Cmd-N, even while being faced with a modal sheet in the Info dialog, invokes the application&#8217;s higher-level &#8220;New Keychain Item&#8221; functionality. The Info window and its pending sheet disappear and a sheet appears on the main window asking for details about my new item. I thought the window had been dismissed, but later I found it hiding behind the main keychain window. It had simply been ordered backward. The &#8220;Save Changes&#8221; dialog should support a keyboard shortcut for &#8220;Don&#8217;t Save.&#8221; (Radar <a href=\"rdar:\/\/problem\/4327889\">4327889<\/a>).\n<\/p>\n<p>\nLet&#8217;s assume all the above bugs get fixed, and I&#8217;m sitting pretty in Keychain Access land. I hit my Keychain Access keyboard shortcut, press cmd-F, search for &#8220;etrade,&#8221; navigate to the main table, press return to open the item, press a keyboard shortcut to reveal the secret password, and am faced with the &#8220;Keychain Access wants permission&#8221; dialog. First of all, isn&#8217;t this the <strong>Keychain<\/strong> Access application? I&#8217;ve just unlocked my whole keychain. We&#8217;re staring at my repository of goodies. Can&#8217;t you work out a deal or something? You seem to be &#8220;in good&#8221; with the Keychain. Once you show the secure text for an item, you can choose to &#8220;Always Allow,&#8221; but that only gives permission for that specific item! So you&#8217;ve got to enter the password and click &#8220;Always Allow&#8221; at least once for every freaking item in your keychain. There should at least be a preference for easily saying &#8220;Always give Keychain Access access to secure items.&#8221; (Radar <a href=\"rdar:\/\/problem\/4327935\">4327935<\/a>).\n<\/p>\n<p>\nI thought maybe I could do something spiffy like go in and manually set all of the items to allow Keychain Access to access them. Since you can &#8220;preload&#8221; this setting in the &#8220;Access Control&#8221; pane of an item&#8217;s info window, I thought maybe I could select all of my items and add the same access privilege for Keychain Access to them. Oops! I selected all 500+ items and hit Cmd-I. Now I&#8217;ve got 500+ Info windows cascading across my screen. To add insult to injury, Keychain Access doesn&#8217;t support a &#8220;Close All Windows&#8221; option, though quitting and relaunching did the trick. (Radar <a href=\"rdar:\/\/problem\/4327956\">4327956<\/a>).\n<\/p>\n<p>\nHaving to give individual authorization to each and every item wouldn&#8217;t be so bad if the authorization dialog itself wasn&#8217;t so poorly keyboard-navigable. The dialog pops up, asks you to give authorization (by typing of course&#8230; at the keyboard!) and then you have to go over to the mouse to click either the &#8220;Deny,&#8221;&#8221;Allow Once,&#8221; or &#8220;Allow Always&#8221; items. Gah! Presumably this is done to prevent somebody accidentally giving permission to a malicious application, but you&#8217;ve <em>got to enter the password before doing so<\/em>! That gives me plenty of opportunity to think twice before allowing or denying the action. At least the &#8220;Allow Once&#8221; button should be default and automatically clicked upon hitting return from the password dialog. The &#8220;Always Allow&#8221; button should ideally also have some keyboard shortcut. (Radar <a href=\"rdar:\/\/problem\/4327981\">4327981<\/a>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apple&#8217;s 10.4.3 update includes a nice surprise: the search field for the Keychain Access application is now case-insensitive! How many times I&#8217;ve fumed and fussed about this shortcoming. At last I can search for &#8220;etrade&#8221; and find a note called &#8220;ETrade info.&#8221; Though vastly improved, by no means is the Keychain Access application perfect. In [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,12],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-applebugfriday","category-usability"],"_links":{"self":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":0,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"wp:attachment":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}