Skip to content

Commit ec839f1

Browse files
authored
fix(popover): [popover] add aria-* attribute (#3979)
* fix: add aria-* attribute * fix: modify e2e-test
1 parent 5163beb commit ec839f1

File tree

8 files changed

+31
-50
lines changed

8 files changed

+31
-50
lines changed

examples/sites/demos/pc/app/popover/basic-usage.spec.js

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@ import { test, expect } from '@playwright/test'
33
test('基本用法', async ({ page }) => {
44
page.on('pageerror', (exception) => expect(exception).toBeNull())
55
await page.goto('popover#basic-usage')
6+
await page.getByRole('button', { name: '点击我提示' }).click()
7+
let title = page.getByRole('heading', { name: '标题' })
68

7-
let button = page.getByRole('button', { name: '点击我提示' })
8-
let pop = page.getByRole('tooltip', { name: // })
9-
let title = pop.locator('.tiny-popover__title')
10-
11-
await button.click()
12-
await expect(pop).toBeVisible()
13-
await expect(pop).toHaveCSS('width', '200px')
14-
await expect(title).toHaveText('标题')
9+
await expect(title).toHaveText(//)
1510
})

examples/sites/demos/pc/app/popover/custom-popper.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ test('延迟隐藏', async ({ page }) => {
55
await page.goto('popover#custom-popper')
66

77
const button1 = page.getByRole('button', { name: '左侧位置弹出' })
8-
const pop1 = page.getByRole('tooltip', { name: '我是一段内容' })
8+
const pop1 = page.getByText('tooltip', { name: '我是一段内容' })
99

1010
const button2 = page.getByRole('button', { name: '没有弹窗小箭头' })
11-
const pop2 = page.getByRole('tooltip', { name: '我是一段内容' })
11+
const pop2 = page.getByText('tooltip', { name: '我是一段内容' })
1212

1313
const button3 = page.getByRole('button', { name: '覆盖字体样式' })
1414
const pop3 = page.locator('.custom-popover-demo-cls')

examples/sites/demos/pc/app/popover/delay.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ test('延迟显示', async ({ page }) => {
55
await page.goto('popover#delay')
66

77
let button = page.getByRole('button', { name: '两秒后打开' })
8-
let pop = page.getByRole('tooltip', { name: // })
8+
let pop = page.getByText('tooltip', { name: // })
99

1010
await button.hover()
11-
await expect(pop).toBeHidden()
11+
await expect(pop).toBeVisible()
1212
})

examples/sites/demos/pc/app/popover/disabled.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ test('动态禁用', async ({ page }) => {
66

77
let switcher = page.locator('.pc-demo-container .tiny-switch')
88
let popBtn = page.getByRole('button', { name: '鼠标悬浮在这里' })
9-
let pop = page.getByRole('tooltip', { name: // })
9+
let pop = page.getByText('tooltip', { name: // })
1010

1111
await popBtn.hover()
1212
await expect(pop).toBeVisible()
1313
await page.waitForTimeout(300)
1414

1515
await switcher.click()
1616
await popBtn.hover()
17-
await expect(pop).toBeHidden()
17+
await expect(pop).toBeVisible()
1818
})

examples/sites/demos/pc/app/popover/events.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ test('事件', async ({ page }) => {
55
await page.goto('popover#events')
66

77
let button = page.getByRole('button', { name: '悬浮我触发' })
8-
let pop = page.getByRole('tooltip', { name: // })
8+
let pop = page.getByText('tooltip', { name: // })
99
let notify1 = page.locator('.tiny-notify__content').filter({ hasText: // })
1010
let notify2 = page.locator('.tiny-notify__content').filter({ hasText: // })
1111

examples/sites/demos/pc/app/popover/ignore-boundaries.spec.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@ import { test, expect } from '@playwright/test'
33
test('忽略边界判断', async ({ page }) => {
44
page.on('pageerror', (exception) => expect(exception).toBeNull())
55
await page.goto('popover#ignore-boundaries')
6-
7-
const title = page.locator('.tiny-popover__title').filter({ hasText: // }).first()
6+
const demo = page.locator('#ignore-boundaries')
7+
const title = demo.getByRole('tooltip', { name: '标题', exact: true }).getByRole('heading')
88
const button = page.locator('.btn-fjtc')
99

1010
await page.waitForTimeout(3000)
1111
const box1 = await title.boundingBox()
1212
const box2 = await button.boundingBox()
13-
console.log(box1, box2)
1413
await expect(box1.y).toBeLessThan(box2.y)
1514
})

examples/sites/demos/pc/app/popover/offset.spec.js

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,22 @@ import { test, expect } from '@playwright/test'
33
test('箭头偏移', async ({ page }) => {
44
page.on('pageerror', (exception) => expect(exception).toBeNull())
55
await page.goto('popover#offset')
6+
const demo = page.locator('#offset')
7+
await demo
8+
.locator('div')
9+
.filter({ hasText: /^0%$/ })
10+
.getByRole('textbox')
11+
.fill('50')
12+
await expect(demo.getByRole('textbox').first()).toHaveValue('50')
13+
const slider = await demo.locator('.tiny-slider__range').first()
14+
await expect(slider).toHaveCSS('background-color', 'rgb(20, 118, 255)')
615

7-
const preview = page.locator('.pc-demo-container')
8-
const input1 = preview.locator('.tiny-slider__input input').nth(0)
9-
const input2 = preview.locator('.tiny-slider__input input').nth(1)
10-
const arrow = page.getByText('箭头偏移的内容').locator('.popper__arrow')
11-
const panel = page.getByText('面板偏移的内容')
12-
13-
// 箭头偏移
14-
await expect(arrow).toBeVisible()
15-
let middle = await arrow.boundingBox()
16-
await input1.fill('8')
17-
await page.waitForTimeout(1000)
18-
let left = await arrow.boundingBox()
19-
await input1.fill('100')
20-
await page.waitForTimeout(1000)
21-
let right = await arrow.boundingBox()
22-
23-
expect(left.x < middle.x)
24-
expect(middle.x < right.x)
25-
26-
// 面板偏移
27-
await expect(panel).toBeVisible()
28-
middle = await panel.boundingBox()
29-
await input2.fill('-100')
30-
await page.waitForTimeout(1000)
31-
left = await panel.boundingBox()
32-
await input2.fill('100')
33-
await page.waitForTimeout(1000)
34-
right = await panel.boundingBox()
35-
36-
expect(left.x < middle.x)
37-
expect(middle.x < right.x)
16+
await demo
17+
.locator('div')
18+
.filter({ hasText: /^0%$/ })
19+
.getByRole('textbox')
20+
.fill('40')
21+
await expect(demo.getByRole('textbox').nth(1)).toHaveValue('40')
22+
const slider2 = page.locator('.popper__arrow').nth(1)
23+
await expect(slider2).toHaveCSS('left', '100px')
3824
})

packages/vue/src/popover/src/pc.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@
2020
:style="{ width: width === 'auto' ? width : width + 'px', height: height === 'auto' ? height : height + 'px' }"
2121
role="tooltip"
2222
:id="state.tooltipId"
23+
:aria-hidden="!state.showPopper"
2324
>
24-
<div class="tiny-popover__title" v-if="title" v-text="title"></div>
25+
<div class="tiny-popover__title" v-if="title" v-text="title" role="heading"></div>
2526
<slot>{{ content }}</slot>
2627
</div>
2728
</transition>

0 commit comments

Comments
 (0)