Skip to content

Commit 971452e

Browse files
Merge pull request #2158 from shopware/docs-changes-march2
chore: creates dev folder and moves pages
2 parents 9704948 + 211481c commit 971452e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1944
-2323
lines changed

.gitbook.yaml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,34 @@ redirects:
109109
resources/references/upgrades/core/translation/extension-translation.html: guides/upgrades-migrations/extension-translation.html
110110
resources/references/upgrades/core/translation/language-pack-migration.html: guides/upgrades-migrations/language-pack-migration.html
111111
resources/references/upgrades/administration/: guides/upgrades-migrations/administration/
112-
resources/references/upgrades/: guides/upgrades-migrations/
112+
resources/references/upgrades/: guides/upgrades-migrations/
113+
guides/plugins/plugins/testing/php-unit.html: guides/development/testing/unit/php-unit.html
114+
guides/plugins/plugins/testing/jest-storefront.html: guides/development/testing/unit/jest-storefront.html
115+
guides/plugins/plugins/testing/jest-admin.html: guides/development/testing/unit/jest-admin.html
116+
guides/development/testing/ci.html: guides/development/testing/index.html
117+
resources/guidelines/testing/store/: guides/development/testing/testing-guidelines/
118+
guides/integrations-api/general-concepts/: guides/development/integrations-api/general-concepts/
119+
guides/integrations-api/general-concepts/api-versioning.html: guides/development/integrations-api/general-concepts/api-versioning.html
120+
guides/integrations-api/general-concepts/request-headers.html: guides/development/integrations-api/general-concepts/request-headers.html
121+
guides/integrations-api/general-concepts/search-criteria.html: guides/development/integrations-api/general-concepts/search-criteria.html
122+
guides/integrations-api/general-concepts/partial-data-loading.html: guides/development/integrations-api/general-concepts/partial-data-loading.html
123+
guides/integrations-api/general-concepts/generated-reference.html: guides/development/integrations-api/general-concepts/generated-reference.html
124+
resources/references/core-reference/dal-reference/filters-reference.html: guides/resources/references/core-reference/dal-reference/filters-reference.html
125+
resources/references/core-reference/dal-reference/aggregations-reference.html: guides/resources/references/core-reference/dal-reference/aggregations-reference.html
126+
guides/plugins/apps/app-scripts/data-loading.html: guides/integrations-api/general-concepts/search-criteria.html
127+
resources/accessibility/accessibility-checklist.html: guides/development/accessibility/accessibility-checklist.html
128+
resources/accessibility/storefront-accessibility.html: guides/development/accessibility/storefront-accessibility.html
129+
guides/plugins/apps/in-app-purchases.html: guides/development/monetization/in-app-purchases.html
130+
guides/plugins/plugins/testing/playwright/actor-pattern.html: guides/development/testing/e2e-playwright/actor-pattern.html
131+
guides/plugins/plugins/testing/playwright/best-practices.html: guides/development/testing/e2e-playwright/best-practices.html
132+
guides/plugins/plugins/testing/playwright/deployment.html: guides/development/testing/e2e-playwright/deployment.html
133+
guides/plugins/plugins/testing/playwright/fixtures.html: guides/development/testing/e2e-playwright/fixtures.html
134+
guides/plugins/plugins/testing/playwright/install-configure.html: guides/development/testing/e2e-playwright/install-configure.html
135+
guides/plugins/plugins/testing/playwright/language-agnostic-testing.html: guides/development/testing/e2e-playwright/language-agnostic-testing.html
136+
guides/plugins/plugins/testing/playwright/local-development.html: guides/development/testing/e2e-playwright/local-development.html
137+
guides/plugins/plugins/testing/playwright/page-object.html: guides/development/testing/e2e-playwright/page-object.html
138+
guides/plugins/plugins/testing/playwright/test-data-service.html: guides/development/testing/e2e-playwright/test-data-service.html
139+
guides/plugins/plugins/testing/playwright/test-suite-types.html: guides/development/testing/e2e-playwright/test-suite-types.html
140+
guides/plugins/plugins/testing/playwright/test.html: guides/development/testing/e2e-playwright/test.html
141+
guides/plugins/plugins/testing/cypress/cypress-best-practises.html: guides/development/testing/legacy/cypress/cypress-best-practises.html
142+
guides/plugins/plugins/testing/cypress/cypress-end-to-end-testing/: guides/development/testing/legacy/cypress/

.wordlist.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,7 @@ ORMs
631631
OSS
632632
OTEL
633633
OTLP
634+
OWASP
634635
ObjectField
635636
ObjectType
636637
OffCanvas
@@ -1768,6 +1769,7 @@ resolver's
17681769
resolvers
17691770
resubmittable
17701771
rethrown
1772+
retryability
17711773
returnUrl
17721774
revalidation
17731775
rfc

concepts/framework/in-app-purchases.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ nav:
55

66
---
77

8-
# In-App purchases (IAP)
8+
# In-App Purchases (IAP)
99

1010
::: info
1111
In-App Purchase is available since Shopware version 6.6.9.0
1212
:::
1313

14-
In-App Purchases are a way to lock certain features behind a paywall within the same extension.
14+
In-App Purchases allow you to lock certain features behind a paywall within the same extension.
1515
This is useful for developers who want to offer a free version of their extension with limited features and a paid version with more features.
1616

1717
## Creation
@@ -25,7 +25,7 @@ This JWT ensures that purchase data cannot be tampered with or spoofed and allow
2525
All bought In-App Purchases are part of the JWT claims.
2626

2727
To verify the JWT signature, you can use the JSON Web Key Set (JWKS) available at [`https://api.shopware.com/inappfeatures/jwks`](https://api.shopware.com/inappfeatures/jwks)
28-
Shopware automatically verifies the signature for the use within the Core and Admin.
28+
Shopware automatically verifies the signature for use within the Core and Admin.
2929

3030
Tokens are retrieved when a new purchase is made and during periodic updates.
3131
You can also manually trigger an update by running the command `bin/console scheduled-task:run-single in-app-purchase.update` or by calling the `/api/_action/in-app-purchases/refresh` endpoint.
@@ -37,12 +37,12 @@ In-app purchases are optimized for use with app servers.
3737
Whenever Shopware sends a request to the app server, it includes the [IAP JWT](#token).
3838
The app server can use this token to validate active purchases and unlock related features accordingly.
3939

40-
Plugins are inherently less secure, as their open nature makes them more vulnerable to spoofing or tampering.
40+
Plugins are inherently less secure because their open nature makes them more vulnerable to spoofing and tampering.
4141

42-
<PageRef page="../../guides/plugins/apps/in-app-purchases" title="In-App purchases for Apps" />
42+
<PageRef page="../../guides/development/monetization/in-app-purchases" title="In-App purchases for Apps" />
4343
<PageRef page="../../guides/plugins/plugins/in-app-purchases" title="In-App purchases for Plugins" />
4444

45-
## Checkout Process
45+
## Checkout process
4646

4747
When integrating In-App Purchases, Shopware handles the entire checkout process for you—including payment processing and subscription management.
4848

resources/accessibility/accessibility-checklist.md renamed to guides/development/accessibility/accessibility-checklist.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,101 +10,101 @@ Creating an accessible storefront ensures that all users can navigate, interact
1010

1111
This checklist outlines the key principles and technical requirements for building accessible web interfaces, with a focus on semantic structure, keyboard usability, screen reader compatibility, and inclusive design practices.
1212

13-
## Storefront Accessibility Checklist: Best Practices for Inclusive Web Design
13+
## Storefront accessibility checklist: Best practices for inclusive web design
1414

15-
### Use Semantic HTML
15+
### Use semantic HTML
1616

1717
Leverage native HTML elements that communicate their purpose effectively:
1818

1919
- Use appropriate tags for actions: `<button>`, `<a>`, `<select>` instead of `<div>` or `<span>`.
2020
- Structure your layout with semantic elements: `<nav>`, `<main>`, `<header>`, `<footer>`.
2121
- Always pair `<label>` elements with form controls using `for` and `id`. Avoid relying solely on `placeholder` text for labeling.
2222

23-
### Set the Correct Document Language
23+
### Set the correct document language
2424

2525
Proper language settings help screen readers use accurate pronunciation and intonation:
2626

2727
- Add `lang="en"` (or the appropriate language code) to the `<html>` tag.
2828

29-
### Ensure Accessible Forms
29+
### Ensure accessible forms
3030

31-
All form fields must be clearly labeled and error states must be identifiable:
31+
All form fields must be clearly labeled, and error states must be identifiable:
3232

3333
- Use `<label for="input-id">`, `aria-label`, or `aria-labelledby`.
3434
- Provide error messages that are clear and easy to locate.
35-
- Don’t rely solely on color (e.g., red) to indicate errors. You can use icons or text additionally.
35+
- Don’t rely solely on color (e.g., red) to indicate errors. You can also use icons or text.
3636
- Use `aria-describedby` to connect input fields to help or error messages.
3737

38-
### Manage Focus
38+
### Manage focus
3939

4040
Ensure users know where they are and can move through the interface logically:
4141

42-
- Use `tabindex="0"` for custom interactive elements. Try to not mess around with the tabindex if possible and keep the "natural" tab flow.
43-
- Do not remove focus outlines unless replaced with a clear visible alternative.
44-
- Use `focus()` to direct user attention (e.g. after form errors or modal open).
45-
- Each interactive element that can be clicked or navigated by keyboard (`<a>`, `<button>` etc.) must have a clearly visible focus indication.
42+
- Use `tabindex="0"` for custom interactive elements. Try not to mess around with the tabindex if possible, and keep the "natural" tab flow.
43+
- Do not remove focus outlines unless replaced with a clear, visible alternative.
44+
- Use `focus()` to direct user attention (e.g., after form errors or modal open).
45+
- Each interactive element that can be clicked or navigated by keyboard (`<a>`, `<button>`, etc.) must have a clearly visible focus indication.
4646

47-
### Keyboard Accessibility
47+
### Keyboard accessibility
4848

4949
Users should be able to navigate and interact with all features using only the keyboard:
5050

5151
- Ensure `Enter` and `Space` activate interactive elements.
5252
- Avoid using `onclick` on non-focusable elements without keyboard support.
5353
- Custom widgets must respond to arrow keys and expected keyboard patterns.
5454

55-
### Use ARIA Carefully
55+
### Use ARIA carefully
5656

5757
Use ARIA roles and attributes only when native HTML doesn’t work.
5858

5959
- Use `role="alert"` for live error messaging.
6060
- Apply `aria-expanded`, `aria-controls`, and `aria-hidden` for toggleable UI elements.
6161
- Prefer native HTML elements over ARIA whenever possible to reduce complexity.
6262

63-
### Provide Live Region Updates
63+
### Provide live region updates
6464

6565
Ensure real-time changes are accessible:
6666

67-
- Use `aria-live="polite"` or `aria-live="assertive"` for real-time updates (e.g. validation messages, chat widgets).
67+
- Use `aria-live="polite"` or `aria-live="assertive"` for real-time updates (e.g., validation messages, chat widgets).
6868

69-
### Manage Page Titles and Headings
69+
### Manage page titles and headings
7070

7171
Headings and titles provide structure and orientation. It helps users understand page structure:
7272

73-
- Always update the `<title>` tag on page load or route change.
73+
- Always update the `<title>` tag on page load or route change.
7474
- Use one `<h1>` per page, followed by correct heading hierarchy (`<h2>`, `<h3>`, etc.).
7575

76-
### Support Skip Links
76+
### Support skip links
7777

7878
Help keyboard users skip repetitive content:
7979

8080
- Include a skip link at the top of the page:
8181

82-
```html
82+
```html
8383
<a href="#main-content" class="skip-link">Skip to main content</a>
84-
```
84+
```
8585

86-
### Control Focus When Using Modals or Popovers
86+
### Control focus when using modals or popovers
8787

8888
Focus should remain within the modal and return to the trigger element after closing:
8989

9090
- Trap focus while the modal is open.
9191
- Return focus to the initiating element once it is closed.
9292

93-
### Avoid Auto-Playing Audio or Video
93+
### Avoid auto-playing audio or video
9494

9595
If unavoidable, make sure users can easily pause or stop it:
9696

9797
- Provide controls on `<video>` or `<audio>` elements.
9898
- Avoid autoplay unless muted and non-disruptive.
9999

100-
### Ensure Unique IDs and ARIA Attributes
100+
### Ensure unique IDs and ARIA attributes
101101

102102
Avoid duplicated IDs to maintain screen reader reliability:
103103

104104
- Validate that `id` attributes are unique.
105105
- Ensure any referenced IDs in `aria-labelledby` or `aria-describedby` exist and are not duplicated.
106106

107-
### Test with Assistive Technologies
107+
### Test with assistive technologies
108108

109109
Test your site with real-world tools and scenarios:
110110

@@ -116,4 +116,4 @@ Test your site with real-world tools and scenarios:
116116

117117
Following this checklist will help ensure your storefront is usable by everyone, regardless of ability. It also improves SEO, performance, and user satisfaction for all visitors.
118118

119-
Regularly audit your code, test with assistive technologies, and stay updated with evolving accessibility standards. Inclusive design is good design.
119+
Regularly audit your code, test with assistive technologies, and stay up to date with evolving accessibility standards. Inclusive design is good design.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
nav:
3+
title: Accessibility
4+
position: 10
5+
---
6+
7+
# Accessibility
8+
9+
Shopware is committed to creating inclusive and barrier-free shopping experiences. Accessibility affects both the core Storefront and all custom themes and extensions. Developers are responsible for ensuring their implementations comply with accessibility standards, such as WCAG 2.1 Level AA.
10+
11+
## In this section
12+
13+
<PageRef page="./storefront-accessibility" />
14+
<PageRef page="./accessibility-checklist" />
15+
16+
## Why accessibility matters
17+
18+
* Legal compliance (e.g., EU accessibility regulations)
19+
* Better usability for all users
20+
* Improved SEO and performance
21+
* Future-proof storefront implementations
22+
23+
Shopware continuously introduces accessibility improvements in new releases. Always test extensions with the `ACCESSIBILITY_TWEAKS` feature flag enabled to ensure compatibility.

0 commit comments

Comments
 (0)