diff --git a/Xwt.XamMac/Xwt.Mac/DialogBackend.cs b/Xwt.XamMac/Xwt.Mac/DialogBackend.cs
index 0d19d4cbd..bea463b1e 100644
--- a/Xwt.XamMac/Xwt.Mac/DialogBackend.cs
+++ b/Xwt.XamMac/Xwt.Mac/DialogBackend.cs
@@ -176,8 +176,11 @@ public void EndLoop ()
 			OrderOut (this);
 			Close();
 			NSApplication.SharedApplication.StopModal ();
-			if (parent != null)
+			if (parent != null) {
 				parent.MakeKeyAndOrderFront (parent);
+				NSApplication.SharedApplication.AccessibilityFocusedWindow = parent;
+				parent.AccessibilityFocused = true;
+			}
 		}
 
 		#endregion
diff --git a/Xwt.XamMac/Xwt.Mac/WindowBackend.cs b/Xwt.XamMac/Xwt.Mac/WindowBackend.cs
index 29c1762cb..b063deffa 100644
--- a/Xwt.XamMac/Xwt.Mac/WindowBackend.cs
+++ b/Xwt.XamMac/Xwt.Mac/WindowBackend.cs
@@ -116,6 +116,10 @@ internal void InternalShow ()
 				if (!ParentWindow.ChildWindows.Contains(this))
 					ParentWindow.AddChildWindow(this, NSWindowOrderingMode.Above);
 
+				ParentWindow.AccessibilityFocused = false;
+				NSApplication.SharedApplication.AccessibilityFocusedWindow = this;
+				AccessibilityFocused = true;
+
 				// always use NSWindow for alignment when running in guest mode and
 				// don't rely on AddChildWindow to position the window correctly
 				if (frontend.InitialLocation == WindowLocation.CenterParent && !(ParentWindow is WindowBackend))