Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ exports[`Slide loads and displays Carousel component 1`] = `
>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 1 of 3"
class="pagination-button active button button-neutral button-medium"
Expand All @@ -49,7 +49,6 @@ exports[`Slide loads and displays Carousel component 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 2 of 3"
class="pagination-button button button-neutral button-medium"
Expand All @@ -63,7 +62,6 @@ exports[`Slide loads and displays Carousel component 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 3 of 3"
class="pagination-button button button-neutral button-medium"
Expand Down
6 changes: 3 additions & 3 deletions src/components/Pagination/Pager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ export const Pager: FC<PagerProps> = React.forwardRef(
{pageCount > 0 && (
<li>
<Button
aria-current={currentPage === 1}
aria-current={currentPage === 1 ? 'page' : undefined}
classNames={mergeClasses([
styles.paginationButton,
{ [styles.active]: currentPage === 1 },
Expand Down Expand Up @@ -231,7 +231,7 @@ export const Pager: FC<PagerProps> = React.forwardRef(
{_pagers?.map((pager, idx) => (
<li key={idx}>
<Button
aria-current={currentPage === pager}
aria-current={currentPage === pager ? 'page' : undefined}
classNames={mergeClasses([
styles.paginationButton,
{
Expand Down Expand Up @@ -294,7 +294,7 @@ export const Pager: FC<PagerProps> = React.forwardRef(
{pageCount > 1 && showLast && (
<li>
<Button
aria-current={currentPage === pageCount}
aria-current={currentPage === pageCount ? 'page' : undefined}
classNames={mergeClasses([
styles.paginationButton,
{
Expand Down
22 changes: 22 additions & 0 deletions src/components/Pagination/Pagination.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -244,4 +244,26 @@ describe('Pagination', () => {
);
expect(onCurrentChange).toHaveBeenCalledWith(4);
});

test('Pagination active pager button uses aria-current="page"', () => {
const assertAriaCurrent = (currentPage: number, activeText: string) => {
const { container, unmount } = render(
<Pagination
currentPage={currentPage}
onCurrentChange={() => {}}
pageSize={10}
total={50}
/>
);
const current = container.querySelectorAll('.pager li [aria-current]');
expect(current).toHaveLength(1);
expect(current[0].getAttribute('aria-current')).toBe('page');
expect(current[0].textContent).toBe(activeText);
unmount();
};

assertAriaCurrent(1, '1');
assertAriaCurrent(3, '3');
assertAriaCurrent(5, '5');
});
});
20 changes: 11 additions & 9 deletions src/components/Pagination/Pagination.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
'use client';

import React, {
FC,
Ref,
useContext,
useEffect,
useRef,
useState,
} from 'react';
import React, { FC, Ref, useContext, useEffect, useRef, useState } from 'react';
import GradientContext, { Gradient } from '../ConfigProvider/GradientContext';
import { OcThemeName } from '../ConfigProvider';
import ThemeContext, {
Expand Down Expand Up @@ -344,14 +337,22 @@ export const Pagination: FC<PaginationProps> = React.forwardRef(
const getItems = (): MenuItemButtonProps[] => {
return pageSizes.map((item?: number, idx?: number) => ({
rowkey: idx,
role: 'option',
'aria-selected': item === _pageSize,
text:
htmlDir === 'ltr'
? `${item} / ${pageSizeText}`
: `${pageSizeText} / ${item}`,
value: item,
}));
};
return <Menu onChange={onSizeChangeHandler} items={getItems()} />;
return (
<Menu
onChange={onSizeChangeHandler}
items={getItems()}
role="presentation"
/>
);
};

const moreThanOnePage: boolean = getPageCount() > 1;
Expand Down Expand Up @@ -391,6 +392,7 @@ export const Pagination: FC<PaginationProps> = React.forwardRef(
) && (
<span className={styles.sizes} key="sizes">
<Dropdown
ariaHaspopupValue="listbox"
overlay={Overlay(_pageSizes)}
onVisibleChange={setToggle}
>
Expand Down
29 changes: 5 additions & 24 deletions src/components/Pagination/__snapshots__/Pagination.test.tsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ exports[`Pagination Pagination should render as dots 1`] = `
>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 1 of 5"
class="pagination-button active button button-neutral button-medium"
Expand All @@ -47,7 +47,6 @@ exports[`Pagination Pagination should render as dots 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 2 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -61,7 +60,6 @@ exports[`Pagination Pagination should render as dots 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 3 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -75,7 +73,6 @@ exports[`Pagination Pagination should render as dots 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 4 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -89,7 +86,6 @@ exports[`Pagination Pagination should render as dots 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 5 of 5"
class="pagination-button button button-neutral button-medium"
Expand Down Expand Up @@ -226,7 +222,7 @@ exports[`Pagination Pagination should render normally 1`] = `
>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 1 of 5"
class="pagination-button active button button-neutral button-medium"
Expand All @@ -240,7 +236,6 @@ exports[`Pagination Pagination should render normally 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 2 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -254,7 +249,6 @@ exports[`Pagination Pagination should render normally 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 3 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -268,7 +262,6 @@ exports[`Pagination Pagination should render normally 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 4 of 5"
class="pagination-button button button-neutral button-medium"
Expand All @@ -282,7 +275,6 @@ exports[`Pagination Pagination should render normally 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 5 of 5"
class="pagination-button button button-neutral button-medium"
Expand Down Expand Up @@ -335,6 +327,7 @@ exports[`Pagination Pagination should render with all elements 1`] = `
aria-controls="dropdown-"
aria-disabled="false"
aria-expanded="false"
aria-haspopup="listbox"
aria-label="Selected page size"
class="pagination-button button button-neutral button-medium icon-right"
id="dropdown-reference"
Expand Down Expand Up @@ -395,7 +388,6 @@ exports[`Pagination Pagination should render with all elements 1`] = `
>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 1 of 4"
class="pagination-button button button-neutral button-medium"
Expand All @@ -409,7 +401,6 @@ exports[`Pagination Pagination should render with all elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 2 of 4"
class="pagination-button button button-neutral button-medium"
Expand All @@ -423,7 +414,6 @@ exports[`Pagination Pagination should render with all elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 3 of 4"
class="pagination-button button button-neutral button-medium"
Expand All @@ -437,7 +427,7 @@ exports[`Pagination Pagination should render with all elements 1`] = `
</li>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 4 of 4"
class="pagination-button active button button-neutral button-medium"
Expand Down Expand Up @@ -541,7 +531,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 1 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -555,7 +544,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 2 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -569,7 +557,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 3 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -583,7 +570,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 4 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -597,7 +583,7 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 5 of 10"
class="pagination-button active button button-neutral button-medium"
Expand All @@ -611,7 +597,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 6 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -625,7 +610,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 7 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -639,7 +623,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 8 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -653,7 +636,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 9 of 10"
class="pagination-button button button-neutral button-medium"
Expand All @@ -667,7 +649,6 @@ exports[`Pagination Pagination should render with some elements 1`] = `
</li>
<li>
<button
aria-current="false"
aria-disabled="false"
aria-label="page 10 of 10"
class="pagination-button button button-neutral button-medium"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ exports[`PersistentBar PersistentBar is topBarPagination 1`] = `
>
<li>
<button
aria-current="true"
aria-current="page"
aria-disabled="false"
aria-label="page 1 of 1"
class="pagination-button active button button-neutral button-medium"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3552,7 +3552,7 @@ LoadedCheerio {
"children": Array [
Node {
"attribs": Object {
"aria-current": "true",
"aria-current": "page",
"aria-disabled": "false",
"aria-label": "page 1 of 1",
"class": "pagination-button active button button-neutral button-medium",
Expand Down Expand Up @@ -3644,7 +3644,7 @@ LoadedCheerio {
"children": Array [
Node {
"attribs": Object {
"aria-current": "true",
"aria-current": "page",
"aria-disabled": "false",
"aria-label": "page 1 of 1",
"class": "pagination-button active button button-neutral button-medium",
Expand Down Expand Up @@ -3778,7 +3778,7 @@ LoadedCheerio {
"children": Array [
Node {
"attribs": Object {
"aria-current": "true",
"aria-current": "page",
"aria-disabled": "false",
"aria-label": "page 1 of 1",
"class": "pagination-button active button button-neutral button-medium",
Expand Down Expand Up @@ -3870,7 +3870,7 @@ LoadedCheerio {
"children": Array [
Node {
"attribs": Object {
"aria-current": "true",
"aria-current": "page",
"aria-disabled": "false",
"aria-label": "page 1 of 1",
"class": "pagination-button active button button-neutral button-medium",
Expand Down
Loading
Loading