Thursday, July 4, 2024

accessibility – Ventura: AppleScript to Robotically Change Wi-Fi Networks

This can be a follow-up to a submit made about 2 years in the past to make use of Apple Script to modify between Wi-Fi networks by way of the menu bar:

Large Sur 11.1: AppleScript to Robotically Change Wi-Fi Networks

My previously-working script now simply returns “lacking worth”:

inform software "System Occasions" to click on (each menu bar merchandise of menu bar 1 of software course of "ControlCenter" whose title begins with "Wi‑Fi")
inform software "System Occasions" to click on (each UI factor of scroll space of group 1 of window "Management Heart" of software course of "ControlCenter" whose title begins with "YOUR_SSID_HERE")

It appears macOS Ventura broke my beforehand answer fairly badly. I am unable to even use “get properties” to make any sense of of what the hierarchy of UI components ought to be anymore. Eg:

inform software "System Occasions" to click on (each menu bar merchandise of menu bar 1 of software course of "Management Heart" whose description begins with "Wi‑Fi")
delay 3
inform software "System Occasions" to get properties of UI components of scroll space 1 of group 1 of window "Management Heart" of software course of "Management Heart"

Outcome:

{{minimal worth:lacking worth, orientation:lacking worth, place:{2061, 76}, class:UI factor, accessibility description:lacking worth, position description:"heading", targeted:lacking worth, title:lacking worth, measurement:{102, 15}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXHeading", worth:lacking worth, subrole:lacking worth, chosen:lacking worth, title:lacking worth, description:"heading"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2052, 95}, class:checkbox, accessibility description:lacking worth, position description:"toggle button", targeted:lacking worth, title:lacking worth, measurement:{288, 32}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXCheckBox", worth:0, subrole:"AXToggle", chosen:lacking worth, title:lacking worth, description:"toggle button"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2061, 141}, class:UI factor, accessibility description:lacking worth, position description:"heading", targeted:lacking worth, title:lacking worth, measurement:{99, 15}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXHeading", worth:lacking worth, subrole:lacking worth, chosen:lacking worth, title:lacking worth, description:"heading"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2052, 160}, class:checkbox, accessibility description:lacking worth, position description:"toggle button", targeted:lacking worth, title:lacking worth, measurement:{288, 32}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXCheckBox", worth:0, subrole:"AXToggle", chosen:lacking worth, title:lacking worth, description:"toggle button"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2052, 192}, class:checkbox, accessibility description:lacking worth, position description:"toggle button", targeted:lacking worth, title:lacking worth, measurement:{288, 32}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXCheckBox", worth:1, subrole:"AXToggle", chosen:lacking worth, title:lacking worth, description:"toggle button"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2052, 224}, class:checkbox, accessibility description:lacking worth, position description:"toggle button", targeted:lacking worth, title:lacking worth, measurement:{288, 32}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXCheckBox", worth:0, subrole:"AXToggle", chosen:lacking worth, title:lacking worth, description:"toggle button"}, {minimal worth:lacking worth, orientation:lacking worth, place:{2052, 267}, class:UI factor, accessibility description:lacking worth, position description:"disclosure triangle", targeted:false, title:lacking worth, measurement:{288, 22}, assist:lacking worth, complete contents:{}, enabled:true, most worth:lacking worth, position:"AXDisclosureTriangle", worth:0, subrole:lacking worth, chosen:lacking worth, title:lacking worth, description:"disclosure triangle"}}

That is complete gibberish to me and would not listing any clear UI components with any title or description attributes that time to a particular Wi-Fi SSID. I additionally discover a ton of “lacking worth” strings. By comparability, utilizing Accessibility Inspector and clicking on my desired SSID within the community listing, it claims it has the beneath attributes:

<AXApplication: “Management Heart”>
 <AXWindow: “Management Heart”>
  <AXGroup>
   <AXScrollArea>
    <AXCheckBox>

Attributes:
   AXParent:  “<AXScrollArea>”
   AXRoleDescription:  “toggle button”
   AXChildren:  “<array of measurement 0>”
   AXIdentifier:  “wifi-network-MYSSID”
   AXPath:  “Path 0x600003016d90:
  ”
   AXAttributedDescription:  “MYSSID, safe community, 3 bars{
    AXATextAlignmentValue = 0;
    AXFont =     {
        AXFontFamily = ".AppleSystemUIFont";
        AXFontName = ".SFNS-Common";
        AXFontSize = 13;
        AXVisibleName = "System Font Common";
    };
    AXForegroundColor = <CGColor 0x6000026161c0> [<CGColorSpace 0x600002620ae0> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Generic RGB Profile)] ( 0 0 0 0.847059 );
}”
   AXEnabled:  “1”
   AXSubrole:  “AXToggle”
   AXRole:  “AXCheckBox”
   AXWindow:  “<AXWindow: “Management Heart”>”
   AXValue:  “1”
   AXChildrenInNavigationOrder:  “<array of measurement 0>”

Actions:
   AXPress - press

I am actually really stumped right here and have been making an attempt to work on this for hours. I simply cannot for the lifetime of me work out which little one factor inside “scroll space 1” I ought to be utilizing. Any concepts?

Thanks.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles