{"library":"pyobjc-framework-accessibility","title":"PyObjC Accessibility Framework","description":"The `pyobjc-framework-accessibility` library provides Python wrappers for the macOS Accessibility framework, enabling programmatic interaction with user interface elements and assistive technologies. Currently at version 12.1, it is part of the broader PyObjC project, which typically releases updates in close synchronicity with new macOS versions and Python support cycles.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-accessibility"],"cli":null},"imports":["import Accessibility","from Accessibility import AXUIElementCreateSystemWide"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import Accessibility\nimport AppKit\n\n# IMPORTANT: This code requires granting accessibility permissions to the\n# Python process (e.g., Terminal.app or your IDE) in macOS System Settings >\n# Privacy & Security > Accessibility. Without permissions, most Accessibility\n# functions will fail or return None.\n\ndef get_accessibility_info():\n    # Get the system-wide accessibility element\n    system_wide_element = Accessibility.AXUIElementCreateSystemWide()\n\n    if not system_wide_element:\n        print(\"Could not create system-wide accessibility element. Check permissions.\")\n        return\n\n    print(f\"System-wide element description: {system_wide_element.description()}\")\n\n    # Get the currently focused application\n    workspace = AppKit.NSWorkspace.sharedWorkspace()\n    frontmost_app = workspace.frontmostApplication()\n\n    if frontmost_app:\n        app_name = frontmost_app.localizedName()\n        app_pid = frontmost_app.processIdentifier()\n        print(f\"\\nFrontmost Application: {app_name} (PID: {app_pid})\")\n\n        # Create an accessibility element for the frontmost application\n        app_ax_element = Accessibility.AXUIElementCreateApplication(app_pid)\n\n        if app_ax_element:\n            try:\n                # Attempt to get common attributes\n                role = app_ax_element.attributeForKey_(Accessibility.kAXRoleAttribute)\n                title = app_ax_element.attributeForKey_(Accessibility.kAXTitleAttribute)\n\n                print(f\"  Role: {role if role else 'N/A'}\")\n                print(f\"  Title: {title if title else 'N/A'}\")\n\n            except Exception as e:\n                print(f\"  Error accessing app attributes (permissions?): {e}\")\n        else:\n            print(f\"  Could not create AXUIElement for {app_name}.\")\n    else:\n        print(\"No frontmost application found.\")\n\n# Call the function, ensuring it's wrapped to explain permissions\nprint(\"Attempting to get Accessibility information...\")\nget_accessibility_info()\nprint(\"\\nRemember to grant Accessibility permissions to your Python environment in macOS System Settings > Privacy & Security > Accessibility.\")","lang":"python","description":"This quickstart demonstrates how to obtain the system-wide accessibility element and query basic information about the frontmost application. Running this code requires granting specific Accessibility permissions to your Python process in macOS System Settings.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.8,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-accessibility","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.4,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}