@markuplint/rules 5.0.0-alpha.0 → 5.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [5.0.0-alpha.1](https://github.com/markuplint/markuplint/compare/v5.0.0-alpha.0...v5.0.0-alpha.1) (2026-02-22)
7
+
8
+ - fix(rules)!: remove complementary from top-level landmark check ([4643651](https://github.com/markuplint/markuplint/commit/4643651d256276ae0473d4756e72277d59398e3d))
9
+
10
+ ### BREAKING CHANGES
11
+
12
+ - The landmark-roles rule no longer checks that
13
+ complementary landmarks are top-level. This aligns with axe-core's
14
+ deprecation of landmark-complementary-is-top-level.
15
+
16
+ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
17
+
6
18
  # [5.0.0-alpha.0](https://github.com/markuplint/markuplint/compare/v4.14.1...v5.0.0-alpha.0) (2026-02-20)
7
19
 
8
20
  ### Bug Fixes
package/lib/index.d.ts CHANGED
@@ -44,7 +44,7 @@ declare const rules: {
44
44
  }>>;
45
45
  readonly 'label-has-control': Readonly<import("@markuplint/ml-core").RuleSeed<import("@markuplint/ml-core").RuleConfigValue, undefined>>;
46
46
  readonly 'landmark-roles': Readonly<import("@markuplint/ml-core").RuleSeed<boolean, {
47
- ignoreRoles: (("banner" | "main" | "complementary" | "contentinfo") | "form" | "navigation" | "region")[];
47
+ ignoreRoles: (("banner" | "main" | "contentinfo") | "complementary" | "form" | "navigation" | "region")[];
48
48
  labelEachArea: boolean;
49
49
  }>>;
50
50
  readonly 'link-types': Readonly<import("@markuplint/ml-core").RuleSeed<boolean, {
@@ -8,13 +8,13 @@ type Options = {
8
8
  labelEachArea: boolean;
9
9
  };
10
10
  /** Landmark roles that should appear at the top level of the document. */
11
- type TopLevelRoles = 'banner' | 'main' | 'complementary' | 'contentinfo';
11
+ type TopLevelRoles = 'banner' | 'main' | 'contentinfo';
12
12
  /** All recognized ARIA landmark roles for this rule. */
13
- type Roles = TopLevelRoles | 'form' | 'navigation' | 'region';
13
+ type Roles = TopLevelRoles | 'complementary' | 'form' | 'navigation' | 'region';
14
14
  /**
15
15
  * Rule that validates proper usage of ARIA landmark roles.
16
16
  *
17
- * Checks that `banner`, `main`, `complementary`, and `contentinfo` landmarks are
17
+ * Checks that `banner`, `main`, and `contentinfo` landmarks are
18
18
  * top-level (not nested inside other landmarks), and that when duplicate landmarks
19
19
  * of the same role exist, each has a unique accessible name.
20
20
  */
@@ -11,11 +11,11 @@ const selectors = {
11
11
  region: ['[role="region"]', 'section[aria-labelledby]', 'section[aria-label]', 'section[title]'],
12
12
  };
13
13
  /** Roles that are required to be top-level landmarks per WAI-ARIA practices. */
14
- const topLevelRoles = ['banner', 'main', 'complementary', 'contentinfo'];
14
+ const topLevelRoles = ['banner', 'main', 'contentinfo'];
15
15
  /**
16
16
  * Rule that validates proper usage of ARIA landmark roles.
17
17
  *
18
- * Checks that `banner`, `main`, `complementary`, and `contentinfo` landmarks are
18
+ * Checks that `banner`, `main`, and `contentinfo` landmarks are
19
19
  * top-level (not nested inside other landmarks), and that when duplicate landmarks
20
20
  * of the same role exist, each has a unique accessible name.
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markuplint/rules",
3
- "version": "5.0.0-alpha.0",
3
+ "version": "5.0.0-alpha.1",
4
4
  "description": "Built-in rules of markuplint",
5
5
  "repository": "git@github.com:markuplint/markuplint.git",
6
6
  "author": "Yusuke Hirao <yusukehirao@me.com>",
@@ -27,12 +27,12 @@
27
27
  "./lib/permitted-contents/debug.js": "./lib/permitted-contents/debug.browser.js"
28
28
  },
29
29
  "dependencies": {
30
- "@markuplint/html-spec": "5.0.0-alpha.0",
31
- "@markuplint/ml-core": "5.0.0-alpha.0",
32
- "@markuplint/ml-spec": "5.0.0-alpha.0",
33
- "@markuplint/selector": "5.0.0-alpha.0",
34
- "@markuplint/shared": "5.0.0-alpha.0",
35
- "@markuplint/types": "5.0.0-alpha.0",
30
+ "@markuplint/html-spec": "5.0.0-alpha.1",
31
+ "@markuplint/ml-core": "5.0.0-alpha.1",
32
+ "@markuplint/ml-spec": "5.0.0-alpha.1",
33
+ "@markuplint/selector": "5.0.0-alpha.1",
34
+ "@markuplint/shared": "5.0.0-alpha.1",
35
+ "@markuplint/types": "5.0.0-alpha.1",
36
36
  "@mdn/browser-compat-data": "^7.3.2",
37
37
  "@types/debug": "4.1.12",
38
38
  "ansi-colors": "4.1.3",
@@ -42,5 +42,5 @@
42
42
  "image-size": "^2.0.2",
43
43
  "type-fest": "5.4.4"
44
44
  },
45
- "gitHead": "13dcfc84ec83d87360c720e253383b60767e1b56"
45
+ "gitHead": "78a295e73a097a1ce09c777c06fa21ab68136387"
46
46
  }