{"id":8521,"date":"2014-03-04T16:18:07","date_gmt":"2014-03-04T21:18:07","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=8521"},"modified":"2014-03-04T16:18:37","modified_gmt":"2014-03-04T21:18:37","slug":"add-security-access-groups-for-accessibility-apis","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2014\/03\/04\/add-security-access-groups-for-accessibility-apis\/","title":{"rendered":"Add Security Access Groups for Accessibility APIs"},"content":{"rendered":"<p><a href=\"http:\/\/www.openradar.me\/16224269\">Craig Hockenberry<\/a>:<\/p>\n<blockquote cite=\"http:\/\/www.openradar.me\/16224269\"><p>Disallowing an app from controlling another is a good idea (I sure don&rsquo;t want an app selecting menu items for me!) and the <a href=\"https:\/\/developer.apple.com\/library\/mac\/documentation\/security\/conceptual\/AppSandboxDesignGuide\/DesigningYourSandbox\/DesigningYourSandbox.html#\/\/apple_ref\/doc\/uid\/TP40011183-CH4-SW6\">App Sandbox Design Guide&rsquo;s<\/a> statements about accessibility make complete sense.<\/p>\n<p>That being said, automatically moving windows around on my screen is something that helps me do my job and something I can explicitly control using Accessibility in System Preferences. As a user, this type of &ldquo;controlling my app&rdquo; means &ldquo;making my work easier&rdquo;.<\/p><\/blockquote>\n<p>He wants part of System Events&rsquo; AppleScript dictionary to have an access group so that it can be a <a href=\"https:\/\/developer.apple.com\/library\/mac\/qa\/qa1802\/_index.html\">scripting target<\/a>. This would make it possible to target System Events from a sandboxed application using the <tt>com.apple.security.scripting-targets<\/tt> entitlement rather than the broader <tt>com.apple.security.temporary-exception.apple-events<\/tt> one that&rsquo;s likely to be rejected by App Review.<\/p>\n<p>Unfortunately, access groups are not yet widely supported by Mac OS X&rsquo;s built-in applications or by third-party ones. One app that does support access groups is <a href=\"http:\/\/stackoverflow.com\/questions\/21345542\/what-scripting-targets-exist-for-itunes\">iTunes<\/a>, whose .sdef file is, curiously, not stored inside iTunes.app.<\/p>","protected":false},"excerpt":{"rendered":"<p>Craig Hockenberry: Disallowing an app from controlling another is a good idea (I sure don&rsquo;t want an app selecting menu items for me!) and the App Sandbox Design Guide&rsquo;s statements about accessibility make complete sense. That being said, automatically moving windows around on my screen is something that helps me do my job and something [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[159,30,39,53,660],"class_list":["post-8521","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-applescript","tag-mac","tag-macappstore","tag-sandboxing","tag-system-events"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/8521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=8521"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/8521\/revisions"}],"predecessor-version":[{"id":8522,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/8521\/revisions\/8522"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=8521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=8521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=8521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}