diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index cd00a61..f5c0f17 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -3,6 +3,7 @@
 import os
 from tkinter import ttk
 from test.support import requires, run_unittest
+import sys
 
 import tkinter.test.support as support
 from tkinter.test.test_ttk.test_functions import MockTclObj, MockStateSpec
@@ -561,11 +562,19 @@
 
         self.nb.pack()
         self.nb.wait_visibility()
-        self.assertEqual(self.nb.tab('@5,5'), self.nb.tab('current'))
+        if sys.platform == 'darwin':
+            tb_idx = "@20,5"
+        else:
+            tb_idx = "@5,5"
+        self.assertEqual(self.nb.tab(tb_idx), self.nb.tab('current'))
 
         for i in range(5, 100, 5):
-            if self.nb.tab('@%d, 5' % i, text=None) == 'a':
-                break
+            try:
+                if self.nb.tab('@%d, 5' % i, text=None) == 'a':
+                    break
+            except tkinter.TclError:
+                pass
+
         else:
             self.fail("Tab with text 'a' not found")
 
@@ -722,7 +731,10 @@
         self.nb.enable_traversal()
         self.nb.focus_force()
         support.simulate_mouse_click(self.nb, 5, 5)
-        self.nb.event_generate('<Alt-a>')
+        if sys.platform == 'darwin':
+            self.nb.event_generate('<Option-a>')
+        else:
+            self.nb.event_generate('<Alt-a>')
         self.assertEqual(self.nb.select(), str(self.child1))
 
 
