diff --git a/src/TrackPanelAx.cpp b/src/TrackPanelAx.cpp
index de219d066..e636bfd0c 100644
--- a/src/TrackPanelAx.cpp
+++ b/src/TrackPanelAx.cpp
@@ -701,4 +701,32 @@ wxAccStatus TrackPanelAx::Navigate(wxNavDir navDir, int fromId, int* toId, wxAcc
    return wxACC_OK;
 }
 
+// Modify focus or selection
+wxAccStatus TrackPanelAx::Select(int childId, wxAccSelectionFlags selectFlags)
+{
+   // Only support change of focus
+   if (selectFlags != wxACC_SEL_TAKEFOCUS)
+      return wxACC_NOT_IMPLEMENTED;
+   
+   if (childId != CHILDID_SELF) {
+      int childCount;
+      GetChildCount( &childCount );
+      if (childId > childCount)
+           return wxACC_FAIL;
+
+      Track* t = FindTrack(childId).get();
+      if (t) {
+         mTrackPanel->SetFocusedTrack(t);
+         mTrackPanel->EnsureVisible(t);
+         AudacityProject* p = GetActiveProject();
+         if (p)
+            p->ModifyState(false);
+      }
+   }
+   else
+      return wxACC_NOT_IMPLEMENTED;
+
+   return wxACC_OK;
+}
+
 #endif // wxUSE_ACCESSIBILITY
diff --git a/src/TrackPanelAx.h b/src/TrackPanelAx.h
index 4bb64148e..f808d11e1 100644
--- a/src/TrackPanelAx.h
+++ b/src/TrackPanelAx.h
@@ -107,6 +107,9 @@ public:
 
    // Navigates from fromId to toId/toObject
    wxAccStatus Navigate(wxNavDir navDir, int fromId, int* toId, wxAccessible** toObject) override;
+
+   // Modify focus or selection
+   wxAccStatus Select(int childId, wxAccSelectionFlags selectFlags) override;
 #endif
 
 private: