diff --git a/wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt b/wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
index 5cd37a2..c4eabb1 100644
--- a/wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
+++ b/wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
@@ -274,7 +274,8 @@
                 )
             }
 
-        rule.onRoot().assertWidthIsEqualTo(52.dp).assertHeightIsEqualTo(32.dp)
+        rule.onRoot().assertWidthIsEqualTo(ChipDefaults.IconOnlyCompactChipWidth)
+            .assertHeightIsEqualTo(ChipDefaults.CompactChipHeight)
     }
 
     @Test
@@ -289,7 +290,7 @@
                 )
             }
 
-        rule.onRoot().assertHeightIsEqualTo(32.dp)
+        rule.onRoot().assertHeightIsEqualTo(48.dp)
     }
 
     @Test
@@ -303,7 +304,8 @@
                 )
             }
 
-        rule.onRoot().assertWidthIsEqualTo(52.dp).assertHeightIsEqualTo(32.dp)
+        rule.onRoot().assertWidthIsEqualTo(ChipDefaults.IconOnlyCompactChipWidth)
+            .assertHeightIsEqualTo(ChipDefaults.CompactChipHeight)
     }
 
     @Test
@@ -342,7 +344,10 @@
             .getUnclippedBoundsInRoot()
 
         rule.onNodeWithContentDescription(iconTag, useUnmergedTree = true)
-            .assertTopPositionInRootIsEqualTo((itemBounds.height - iconBounds.height) / 2)
+            .assertTopPositionInRootIsEqualTo(
+                (itemBounds.height - iconBounds.height) / 2 +
+                    ChipDefaults.CompactChipTapTargetPadding.calculateTopPadding()
+            )
     }
 
     @Test
@@ -362,7 +367,10 @@
             .getUnclippedBoundsInRoot()
 
         rule.onNodeWithContentDescription(iconTag, useUnmergedTree = true)
-            .assertTopPositionInRootIsEqualTo((itemBounds.height - iconBounds.height) / 2)
+            .assertTopPositionInRootIsEqualTo(
+                (itemBounds.height - iconBounds.height) / 2 +
+                    ChipDefaults.CompactChipTapTargetPadding.calculateTopPadding()
+            )
     }
 
     private fun verifyHeight(expectedHeight: Dp) {
diff --git a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
index aa4c8ed..cb88484 100644
--- a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
+++ b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
@@ -267,7 +267,9 @@
  *
  * The [CompactChip] is Stadium shaped and has a max height designed to take no more than one line
  * of text of [Typography.caption1] style and/or one icon. The default max height is
- * [ChipDefaults.CompactChipHeight].
+ * [ChipDefaults.CompactChipHeight]. This includes a visible chip height of 32.dp and
+ * 8.dp of padding above and below the chip in order to meet accessibility guidelines that
+ * request a minimum of 48.dp height and width of tappable area.
  *
  * If a icon is provided then the labels should be "start" aligned, e.g. left aligned in ltr so that
  * the text starts next to the icon.
@@ -349,7 +351,8 @@
                 }
             },
             onClick = onClick,
-            modifier = modifier.height(ChipDefaults.CompactChipHeight),
+            modifier = modifier.height(ChipDefaults.CompactChipHeight)
+                .padding(ChipDefaults.CompactChipTapTargetPadding),
             icon = icon,
             colors = colors,
             enabled = enabled,
@@ -363,7 +366,8 @@
             onClick = onClick,
             modifier = modifier
                 .height(ChipDefaults.CompactChipHeight)
-                .width(ChipDefaults.IconOnlyCompactChipWidth),
+                .width(ChipDefaults.IconOnlyCompactChipWidth)
+                .padding(ChipDefaults.CompactChipTapTargetPadding),
             colors = colors,
             enabled = enabled,
             interactionSource = interactionSource,
@@ -665,10 +669,24 @@
     internal val Height = 52.dp
 
     /**
-     * The height applied for the [CompactChip].
-     * Note that you can override it by applying Modifier.height directly on [CompactChip].
+     * The height applied for the [CompactChip]. This includes a visible chip height of 32.dp and
+     * 8.dp of padding above and below the chip in order to meet accessibility guidelines that
+     * request a minimum of 48.dp height and width of tappable area.
+     *
+     * Note that you can override it by adjusting Modifier.height and Modifier.padding directly on
+     * [CompactChip].
      */
-    internal val CompactChipHeight = 32.dp
+    internal val CompactChipHeight = 48.dp
+
+    /**
+     * The default padding to be provided around a [CompactChip] in order to ensure that its
+     * tappable area meets minimum UX guidance.
+     */
+    // TODO(b/234119038): Make this public in 1.1
+    internal val CompactChipTapTargetPadding: PaddingValues = PaddingValues(
+        top = 8.dp,
+        bottom = 8.dp
+    )
 
     /**
      * The default width applied for the [CompactChip] when it has no label provided.
