diff --git a/src/runtime/components/Table.vue b/src/runtime/components/Table.vue
index 1c7d608153..af85b51328 100644
--- a/src/runtime/components/Table.vue
+++ b/src/runtime/components/Table.vue
@@ -354,6 +354,7 @@ defineExpose({
v-for="header in headerGroup.headers"
:key="header.id"
:data-pinned="header.column.getIsPinned()"
+ :scope="header.colSpan > 1 ? 'colgroup' : 'col'"
:colspan="header.colSpan > 1 ? header.colSpan : undefined"
:class="ui.th({
class: [
diff --git a/test/components/__snapshots__/Table-vue.spec.ts.snap b/test/components/__snapshots__/Table-vue.spec.ts.snap
index d6505c4f50..44103171e8 100644
--- a/test/components/__snapshots__/Table-vue.spec.ts.snap
+++ b/test/components/__snapshots__/Table-vue.spec.ts.snap
@@ -6,10 +6,10 @@ exports[`Table > renders with as correctly 1`] = `
-
Id
- Amount
- Status
- Email
+ Id
+ Amount
+ Status
+ Email
@@ -60,10 +60,10 @@ exports[`Table > renders with body-bottom slot correctly 1`] = `
-
Id
- Amount
- Status
- Email
+ Id
+ Amount
+ Status
+ Email
@@ -114,10 +114,10 @@ exports[`Table > renders with body-top slot correctly 1`] = `
-
Id
- Amount
- Status
- Email
+ Id
+ Amount
+ Status
+ Email
@@ -167,10 +167,10 @@ exports[`Table > renders with caption correctly 1`] = `