一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
1057 行
90 KiB
JSON
1057 行
90 KiB
JSON
{
|
||
"issue": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"repository_url": "https://api.github.com/repos/laurent22/joplin",
|
||
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14769/labels{/name}",
|
||
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14769/comments",
|
||
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14769/events",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769",
|
||
"id": 4083760034,
|
||
"node_id": "PR_kwDOBLftOs7K_NfP",
|
||
"number": 14769,
|
||
"title": "Desktop: Resolves #14763: Add search support for settings screen",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"labels": [
|
||
{
|
||
"id": 3467743982,
|
||
"node_id": "LA_kwDOBLftOs7OsZLu",
|
||
"url": "https://api.github.com/repos/laurent22/joplin/labels/accessibility",
|
||
"name": "accessibility",
|
||
"color": "91ca55",
|
||
"default": false,
|
||
"description": "Related to accessibility"
|
||
}
|
||
],
|
||
"state": "closed",
|
||
"locked": false,
|
||
"assignees": [],
|
||
"milestone": null,
|
||
"comments": 18,
|
||
"created_at": "2026-03-16T17:17:35Z",
|
||
"updated_at": "2026-04-02T16:24:28Z",
|
||
"closed_at": "2026-04-02T15:16:19Z",
|
||
"assignee": null,
|
||
"author_association": "NONE",
|
||
"active_lock_reason": null,
|
||
"draft": false,
|
||
"pull_request": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14769",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769",
|
||
"diff_url": "https://github.com/laurent22/joplin/pull/14769.diff",
|
||
"patch_url": "https://github.com/laurent22/joplin/pull/14769.patch",
|
||
"merged_at": null
|
||
},
|
||
"body": "Resolves #14763\r\n\r\n## Problem\r\n\r\nThe desktop configuration screen currently does not provide a way to search settings, which makes it difficult to quickly locate specific options when many settings are available. Users must manually scan through sections even when they already know the setting name or part of its description.\r\n\r\n## Solution\r\n\r\nThis change adds a search field to the desktop settings screen that filters visible settings by matching setting labels, descriptions, and section titles in a case-insensitive way.\r\n\r\nThe existing SearchInput component is reused so behaviour remains consistent with other parts of the application. The search field is placed in the sidebar at the top, like in the mobile app, and includes a clear button similar to the regular search field. The right panel displays all matching settings, while sections without matching settings remain visible in the sidebar but are grayed out and not clickable. By default, all matching settings are displayed, and users can click sections to filter to just those sections.\r\n\r\nFiltering logic was extracted into a helper to keep ConfigScreen simpler and testable. Empty and null label/description values are handled safely to avoid crashes. Search also applies to plugin settings, and the search term is highlighted in labels, descriptions, and section titles.\r\n\r\nThis change only affects filtering behaviour in the desktop configuration screen and does not modify setting values or persistence.\r\n\r\n## Test Plan\r\n\r\n* Added unit tests for settings search matching logic \r\n* Open Tools → Options \r\n* Verify all settings appear when search is empty \r\n* Verify the search field appears at the top of the sidebar \r\n* Search using a setting label (for example: language) \r\n* Search using text present in a setting description \r\n* Search using a section title \r\n* Verify matching settings appear in the right panel \r\n* Verify sections without matching settings remain visible but grayed out and not clickable \r\n* Verify clicking a section filters results to that section \r\n* Verify plugin settings are included in search results \r\n* Verify matching text is highlighted in labels, descriptions, and section titles \r\n* Clear the search field and verify full settings list returns\r\n\r\n## Tested with NVDA on Windows.\r\n\r\n*The new settings search field is reachable via keyboard, announced correctly as an editable search field, and can be used to filter settings without a mouse.\r\n\r\n*Matching results remain navigable by keyboard, and focus behaves normally when moving between the sidebar and filtered settings.\r\n\r\n\r\n## Video\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/b9de697d-f1f1-4d9a-8e01-fee61602be5f\r\n\r\n\r\n\r\n\r\n\r\n## AI Assistance Disclosure\r\n\r\nAI-assisted: Yes\r\n\r\nUsed AI assistance for:\r\n\r\n* reviewing PR description wording\r\n* refining search helper edge-case handling\r\n\r\nAll code, testing, and final verification were manually reviewed before submission.",
|
||
"closed_by": {
|
||
"login": "laurent22",
|
||
"id": 1285584,
|
||
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/laurent22",
|
||
"html_url": "https://github.com/laurent22",
|
||
"followers_url": "https://api.github.com/users/laurent22/followers",
|
||
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
||
"repos_url": "https://api.github.com/users/laurent22/repos",
|
||
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14769/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"timeline_url": "https://api.github.com/repos/laurent22/joplin/issues/14769/timeline",
|
||
"performed_via_github_app": null,
|
||
"state_reason": null
|
||
},
|
||
"comments": [
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069293711",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4069293711",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4069293711,
|
||
"node_id": "IC_kwDOBLftOs7yjH6P",
|
||
"user": {
|
||
"login": "github-actions[bot]",
|
||
"id": 41898282,
|
||
"node_id": "MDM6Qm90NDE4OTgyODI=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
|
||
"html_url": "https://github.com/apps/github-actions",
|
||
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
|
||
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
|
||
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
|
||
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
|
||
"type": "Bot",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-16T17:17:49Z",
|
||
"updated_at": "2026-04-02T16:24:28Z",
|
||
"body": "****CLA Assistant Lite bot**** All contributors have signed the CLA ✍️ ✅",
|
||
"author_association": "CONTRIBUTOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069293711/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": {
|
||
"id": 15368,
|
||
"client_id": "Iv1.05c79e9ad1f6bdfa",
|
||
"slug": "github-actions",
|
||
"node_id": "MDM6QXBwMTUzNjg=",
|
||
"owner": {
|
||
"login": "github",
|
||
"id": 9919,
|
||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/github",
|
||
"html_url": "https://github.com/github",
|
||
"followers_url": "https://api.github.com/users/github/followers",
|
||
"following_url": "https://api.github.com/users/github/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/github/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/github/orgs",
|
||
"repos_url": "https://api.github.com/users/github/repos",
|
||
"events_url": "https://api.github.com/users/github/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/github/received_events",
|
||
"type": "Organization",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"name": "GitHub Actions",
|
||
"description": "Automate your workflow from idea to production",
|
||
"external_url": "https://help.github.com/en/actions",
|
||
"html_url": "https://github.com/apps/github-actions",
|
||
"created_at": "2018-07-30T09:30:17Z",
|
||
"updated_at": "2026-05-05T14:51:38Z",
|
||
"permissions": {
|
||
"actions": "write",
|
||
"administration": "read",
|
||
"artifact_metadata": "write",
|
||
"attestations": "write",
|
||
"checks": "write",
|
||
"code_quality": "write",
|
||
"contents": "write",
|
||
"copilot_requests": "write",
|
||
"deployments": "write",
|
||
"discussions": "write",
|
||
"issues": "write",
|
||
"merge_queues": "write",
|
||
"metadata": "read",
|
||
"models": "read",
|
||
"packages": "write",
|
||
"pages": "write",
|
||
"pull_requests": "write",
|
||
"repository_hooks": "write",
|
||
"repository_projects": "write",
|
||
"security_events": "write",
|
||
"statuses": "write",
|
||
"vulnerability_alerts": "read"
|
||
},
|
||
"events": [
|
||
"branch_protection_rule",
|
||
"check_run",
|
||
"check_suite",
|
||
"create",
|
||
"delete",
|
||
"deployment",
|
||
"deployment_status",
|
||
"discussion",
|
||
"discussion_comment",
|
||
"fork",
|
||
"gollum",
|
||
"issues",
|
||
"issue_comment",
|
||
"label",
|
||
"merge_group",
|
||
"milestone",
|
||
"page_build",
|
||
"public",
|
||
"pull_request",
|
||
"pull_request_review",
|
||
"pull_request_review_comment",
|
||
"push",
|
||
"registry_package",
|
||
"release",
|
||
"repository",
|
||
"repository_dispatch",
|
||
"status",
|
||
"watch",
|
||
"workflow_dispatch",
|
||
"workflow_run"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069295567",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4069295567",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4069295567,
|
||
"node_id": "IC_kwDOBLftOs7yjIXP",
|
||
"user": {
|
||
"login": "coderabbitai[bot]",
|
||
"id": 136622811,
|
||
"node_id": "BOT_kgDOCCSy2w",
|
||
"avatar_url": "https://avatars.githubusercontent.com/in/347564?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/coderabbitai%5Bbot%5D",
|
||
"html_url": "https://github.com/apps/coderabbitai",
|
||
"followers_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/followers",
|
||
"following_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/orgs",
|
||
"repos_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/repos",
|
||
"events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/received_events",
|
||
"type": "Bot",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-16T17:18:06Z",
|
||
"updated_at": "2026-03-24T12:54:32Z",
|
||
"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review paused by coderabbit.ai -->\n\n> [!NOTE]\n> ## Reviews paused\n> \n> It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the `reviews.auto_review.auto_pause_after_reviewed_commits` setting.\n> \n> Use the following commands to manage reviews:\n> - `@coderabbitai resume` to resume automatic reviews.\n> - `@coderabbitai review` to trigger a single review.\n> \n> Use the checkboxes below for quick actions:\n> - [ ] <!-- {\"checkboxId\": \"7f6cc2e2-2e4e-497a-8c31-c9e4573e93d1\"} --> ▶️ Resume reviews\n> - [ ] <!-- {\"checkboxId\": \"e9bb8d72-00e8-4f67-9cb2-caf3b22574fe\"} --> 🔍 Trigger review\n\n<!-- end of auto-generated comment: review paused by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nAdds a search feature to the desktop Config screen: new search state and handlers, search/filter/highlight utilities, sidebar search input with enable/disable section logic and keyboard navigation, search-aware rendering for settings/plugins, and a “No settings match your search.” state.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Main Config screen** <br> `packages/app-desktop/gui/ConfigScreen/ConfigScreen.tsx`|Adds `searchQuery`/`searchSelectedSectionName`, search handlers, section-filtering and matching logic, search-aware rendering flow, adjusted sidebar selection during search, conditional custom-screen rendering, and “no results” handling.|\n|**Search utils & tests** <br> `packages/app-desktop/gui/ConfigScreen/configScreenUtils.ts`, `packages/app-desktop/gui/ConfigScreen/configScreenUtilsImpl.tsx`, `packages/app-desktop/gui/ConfigScreen/ConfigScreen.search.test.ts`|New re-export entry-point and implementation for normalization/matching/highlighting (`settingMatchesSearch`, `highlightSearchText`, `searchQueryIsEmpty`) plus Jest tests covering matching scenarios.|\n|**Sidebar & tab UI** <br> `packages/app-desktop/gui/ConfigScreen/Sidebar.tsx`, `packages/app-desktop/gui/ConfigScreen/styles/setting-tab-panel.scss`|Sidebar accepts search props, renders `SearchInput`, computes enabled/disabled tabs with `isSectionMatch`, restricts keyboard navigation to matched tabs, and adds `.-search-results` modifier for tab-panel layout.|\n|**Setting controls & plugins** <br> `packages/app-desktop/gui/ConfigScreen/controls/*`, `.../controls/plugins/*`|Prop additions (`searchQuery` / `highlightQuery`) across `SettingComponent`, `SettingLabel`, `SettingDescription`, `SettingHeader`, `PluginBox`, `PluginsStates`; components use `highlightSearchText`; `PluginsStates` exposes `getSearchText()`.|\n|**Search input styling** <br> `packages/app-desktop/gui/lib/SearchInput/SearchInput.tsx`|Adjusts search input/icon colours and placeholder styling; no behavioural changes.|\n|**Styles** <br> `packages/app-desktop/gui/ConfigScreen/style.scss`, `packages/app-desktop/gui/ConfigScreen/styles/setting-tab-panel.scss`|Adds `.config-screen mark.config-search-highlight` styling and `.setting-tab-panel.-search-results` modifier to adjust layout for search results.|\n|**Build/test ignores** <br> `.eslintignore`, `.gitignore`|Ignore generated JS artifacts for new search utils/tests from linting and TypeScript build outputs.|\n|**Mobile plugin assets** <br> `packages/app-mobile/pluginAssets/index.js`, `packages/app-mobile/pluginAssets/index.web.js`|Updated asset manifest `hash` and minor reordering/removal of `abc/abc_render.js` entries.|\n\n## Sequence Diagram(s)\n\n```mermaid\nsequenceDiagram\n participant User as User\n participant Config as ConfigScreen\n participant Utils as SearchUtils\n participant Sidebar as Sidebar\n participant View as SettingsView\n\n User->>Config: Type query / Click clear\n Config->>Utils: Normalise query, split terms, compute matches\n Utils-->>Config: filteredSections, matchingSectionNames\n Config->>Sidebar: update searchQuery, searchStarted, provide isSectionMatch callback\n Config->>View: compute sectionsToRender, pass searchQuery for highlights\n alt no results\n View-->>User: \"No settings match your search.\"\n else results\n View-->>User: Render matching settings with highlighted matches\n end\n```\n\n## Suggested labels\n\n`accessibility`\n\n## Suggested reviewers\n\n- personalizedrefrigerator\n\n</details>\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 5 | ❌ 1</summary>\n\n### ❌ Failed checks (1 warning)\n\n| Check name | Status | Explanation | Resolution |\n| :----------------: | :--------- | :----------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- |\n| Docstring Coverage | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | Write docstrings for the functions missing them to satisfy the coverage threshold. |\n\n<details>\n<summary>✅ Passed checks (5 passed)</summary>\n\n| Check name | Status | Explanation |\n| :-----------------------------------: | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Title check | ✅ Passed | The title clearly and specifically identifies the main change: adding search support to the settings screen, with issue reference. |\n| Description check | ✅ Passed | The description comprehensively explains the problem, solution, implementation approach, and test plan; it is fully related to the changeset. |\n| Linked Issues check | ✅ Passed | All requirements from `#14763` are met: search field in sidebar, filtering by label/description/section title, all matching settings displayed, non-matching sections grayed out, section-based filtering, plugin search support, and term highlighting. |\n| Out of Scope Changes check | ✅ Passed | All changes directly support the search feature implementation. Mobile asset updates appear to be auto-generated build artifacts. No extraneous modifications detected. |\n| Pr Description Must Follow Guidelines | ✅ Passed | The pull request description includes clear sections addressing Problem (issue `#14763` requesting search functionality in settings), Solution (detailed implementation of search with filtering and highlighting), and Test Plan (manual accessibility testing with NVDA on Windows, video, and AI disclosure). The comments history explicitly confirms the contributor updated the PR description to include Problem/Solution/Test Plan sections as per the GSoC PR guidelines, and the provided PR summary demonstrates all three required elements are present and properly documented. |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} --> Create PR with unit tests\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=laurent22/joplin&utm_content=14769)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->",
|
||
"author_association": "CONTRIBUTOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069295567/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": {
|
||
"id": 347564,
|
||
"client_id": "Iv1.6aaafe4fe882736b",
|
||
"slug": "coderabbitai",
|
||
"node_id": "A_kwHOB96YWc4ABU2s",
|
||
"owner": {
|
||
"login": "coderabbitai",
|
||
"id": 132028505,
|
||
"node_id": "O_kgDOB96YWQ",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/132028505?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/coderabbitai",
|
||
"html_url": "https://github.com/coderabbitai",
|
||
"followers_url": "https://api.github.com/users/coderabbitai/followers",
|
||
"following_url": "https://api.github.com/users/coderabbitai/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/coderabbitai/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/coderabbitai/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/coderabbitai/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/coderabbitai/orgs",
|
||
"repos_url": "https://api.github.com/users/coderabbitai/repos",
|
||
"events_url": "https://api.github.com/users/coderabbitai/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/coderabbitai/received_events",
|
||
"type": "Organization",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"name": "coderabbitai",
|
||
"description": "# Transforming Code Reviews with AI\r\n\r\n## Features\r\n\r\n**Automated Reviews**: Continuous reviews of the pull requests including incremental commits. \r\n\r\n**Summarization**: Generates high-level summary and a technical walkthrough of the PR changes. \r\n\r\n**Line-by-line review**: Provides line-by-line suggestions committable with one click.\r\n\r\n**Codebase verification**: Verifies the impact on the overall codebase and identifies missing changes.\r\n\r\n**Insights into your code**: Ask any questions on your codebase within the pull request \r\n\r\n**Chat about your code** : Chat with the bot around your code. The more you chat, the smarter it gets.\r\n\r\n**Issue Validation**: Validates the PR against the linked issues and identifies other related issues \r\n\r\n\r\n\r\n",
|
||
"external_url": "https://coderabbit.ai?utm_source=cr_app&utm_medium=github",
|
||
"html_url": "https://github.com/apps/coderabbitai",
|
||
"created_at": "2023-06-14T15:47:27Z",
|
||
"updated_at": "2026-03-14T07:58:44Z",
|
||
"permissions": {
|
||
"actions": "read",
|
||
"checks": "write",
|
||
"contents": "write",
|
||
"discussions": "read",
|
||
"issues": "write",
|
||
"members": "read",
|
||
"metadata": "read",
|
||
"pull_requests": "write",
|
||
"statuses": "write"
|
||
},
|
||
"events": [
|
||
"issues",
|
||
"issue_comment",
|
||
"label",
|
||
"organization",
|
||
"pull_request",
|
||
"pull_request_review",
|
||
"pull_request_review_comment",
|
||
"pull_request_review_thread",
|
||
"release",
|
||
"repository"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069319053",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4069319053",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4069319053,
|
||
"node_id": "IC_kwDOBLftOs7yjOGN",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-16T17:22:00Z",
|
||
"updated_at": "2026-03-16T17:22:00Z",
|
||
"body": "I have read the CLA Document and I hereby sign the CLA\r\n\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069319053/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069320075",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4069320075",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4069320075,
|
||
"node_id": "IC_kwDOBLftOs7yjOWL",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-16T17:22:11Z",
|
||
"updated_at": "2026-03-16T17:22:11Z",
|
||
"body": "recheck\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4069320075/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4074908096",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4074908096",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4074908096,
|
||
"node_id": "IC_kwDOBLftOs7y4inA",
|
||
"user": {
|
||
"login": "Daeraxa",
|
||
"id": 58074586,
|
||
"node_id": "MDQ6VXNlcjU4MDc0NTg2",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/58074586?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Daeraxa",
|
||
"html_url": "https://github.com/Daeraxa",
|
||
"followers_url": "https://api.github.com/users/Daeraxa/followers",
|
||
"following_url": "https://api.github.com/users/Daeraxa/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Daeraxa/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Daeraxa/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Daeraxa/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Daeraxa/orgs",
|
||
"repos_url": "https://api.github.com/users/Daeraxa/repos",
|
||
"events_url": "https://api.github.com/users/Daeraxa/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Daeraxa/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-17T13:20:05Z",
|
||
"updated_at": "2026-03-17T13:20:05Z",
|
||
"body": "As per the [PR guidelines](https://github.com/joplin/gsoc/blob/master/pull_request_guidelines.md) could you please add a video and AI disclosure section to your PR?",
|
||
"author_association": "CONTRIBUTOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4074908096/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4075038106",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4075038106",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4075038106,
|
||
"node_id": "IC_kwDOBLftOs7y5CWa",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-17T13:39:16Z",
|
||
"updated_at": "2026-03-17T13:39:16Z",
|
||
"body": "> As per the [PR guidelines](https://github.com/joplin/gsoc/blob/master/pull_request_guidelines.md) could you please add a video and AI disclosure section to your PR?\r\n\r\nUpdated PR description with Problem / Solution / Test Plan, added video and AI disclosure as requested.\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4075038106/reactions",
|
||
"total_count": 1,
|
||
"+1": 1,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081431519",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4081431519",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4081431519,
|
||
"node_id": "IC_kwDOBLftOs7zRbPf",
|
||
"user": {
|
||
"login": "laurent22",
|
||
"id": 1285584,
|
||
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/laurent22",
|
||
"html_url": "https://github.com/laurent22",
|
||
"followers_url": "https://api.github.com/users/laurent22/followers",
|
||
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
||
"repos_url": "https://api.github.com/users/laurent22/repos",
|
||
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-18T10:37:24Z",
|
||
"updated_at": "2026-03-18T10:37:24Z",
|
||
"body": "Hello, for information, the issue has been updated with detailed spec on how it should work:\r\n\r\nhttps://github.com/laurent22/joplin/issues/14763\r\n\r\nIf you would like to continue working on this pull request, please check the spec.",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081431519/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4082772547",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4082772547",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4082772547,
|
||
"node_id": "IC_kwDOBLftOs7zWipD",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-18T13:58:10Z",
|
||
"updated_at": "2026-03-18T13:58:10Z",
|
||
"body": "> Hello, for information, the issue has been updated with detailed spec on how it should work:\r\n> \r\n> #14763\r\n> \r\n> If you would like to continue working on this pull request, please check the spec.\r\n\r\nDone👍",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4082772547/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4085804264",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4085804264",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4085804264,
|
||
"node_id": "IC_kwDOBLftOs7ziGzo",
|
||
"user": {
|
||
"login": "personalizedrefrigerator",
|
||
"id": 46334387,
|
||
"node_id": "MDQ6VXNlcjQ2MzM0Mzg3",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/46334387?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/personalizedrefrigerator",
|
||
"html_url": "https://github.com/personalizedrefrigerator",
|
||
"followers_url": "https://api.github.com/users/personalizedrefrigerator/followers",
|
||
"following_url": "https://api.github.com/users/personalizedrefrigerator/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/personalizedrefrigerator/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/personalizedrefrigerator/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/personalizedrefrigerator/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/personalizedrefrigerator/orgs",
|
||
"repos_url": "https://api.github.com/users/personalizedrefrigerator/repos",
|
||
"events_url": "https://api.github.com/users/personalizedrefrigerator/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/personalizedrefrigerator/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-18T21:55:51Z",
|
||
"updated_at": "2026-03-18T21:55:51Z",
|
||
"body": "Thank you for working on this!\r\n\r\nSince this modifies an important part of the desktop app's UI:\r\n- How accessible is the new implementation?\r\n- Would you be willing to test the change with a screen reader? (See [Joplin: Testing with a screen reader](https://joplinapp.org/help/dev/accessibility#testing-with-a-screen-reader)).\r\n - If not, I can try to do so at some point in the near future, but it may take me a few days.",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4085804264/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4090441542",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4090441542",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4090441542,
|
||
"node_id": "IC_kwDOBLftOs7zzy9G",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-19T14:12:55Z",
|
||
"updated_at": "2026-03-19T14:12:55Z",
|
||
"body": "> Thank you for working on this!\r\n> \r\n> Since this modifies an important part of the desktop app's UI:\r\n> \r\n> * How accessible is the new implementation?\r\n> * Would you be willing to test the change with a screen reader? (See [Joplin: Testing with a screen reader](https://joplinapp.org/help/dev/accessibility#testing-with-a-screen-reader)).\r\n> \r\n> * If not, I can try to do so at some point in the near future, but it may take me a few days.\r\n\r\nTested with NVDA on Windows and added a short video as well.\r\n\r\nThe search field is reachable by keyboard, announced correctly by the screen reader, and filtering works without using a mouse. Matching results remain keyboard accessible, and focus behaves normally while navigating between the sidebar and filtered settings.\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4090441542/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091106928",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4091106928",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4091106928,
|
||
"node_id": "IC_kwDOBLftOs7z2VZw",
|
||
"user": {
|
||
"login": "personalizedrefrigerator",
|
||
"id": 46334387,
|
||
"node_id": "MDQ6VXNlcjQ2MzM0Mzg3",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/46334387?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/personalizedrefrigerator",
|
||
"html_url": "https://github.com/personalizedrefrigerator",
|
||
"followers_url": "https://api.github.com/users/personalizedrefrigerator/followers",
|
||
"following_url": "https://api.github.com/users/personalizedrefrigerator/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/personalizedrefrigerator/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/personalizedrefrigerator/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/personalizedrefrigerator/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/personalizedrefrigerator/orgs",
|
||
"repos_url": "https://api.github.com/users/personalizedrefrigerator/repos",
|
||
"events_url": "https://api.github.com/users/personalizedrefrigerator/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/personalizedrefrigerator/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-19T15:42:59Z",
|
||
"updated_at": "2026-03-19T15:42:59Z",
|
||
"body": "> Tested with NVDA on Windows and added a short video as well.\r\n\r\nThank you!! Possible issue: The keyboard seems to skip entries in the tab control. UI components that can be activated with a mouse should also be usable from a keyboard (see [the WCAG 2.2 accessibility guidelines](https://www.w3.org/WAI/WCAG22/Understanding/keyboard)).\r\n\r\nFor reference, the settings tabs should follow the [ARIA tab pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) (at least, when not searching).\r\n\r\nI've also [enabled automated accessibility checks](https://github.com/laurent22/joplin/pull/14793) for the settings screen, which should help catch certain accessibility issues.",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091106928/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091114943",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4091114943",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4091114943,
|
||
"node_id": "IC_kwDOBLftOs7z2XW_",
|
||
"user": {
|
||
"login": "personalizedrefrigerator",
|
||
"id": 46334387,
|
||
"node_id": "MDQ6VXNlcjQ2MzM0Mzg3",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/46334387?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/personalizedrefrigerator",
|
||
"html_url": "https://github.com/personalizedrefrigerator",
|
||
"followers_url": "https://api.github.com/users/personalizedrefrigerator/followers",
|
||
"following_url": "https://api.github.com/users/personalizedrefrigerator/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/personalizedrefrigerator/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/personalizedrefrigerator/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/personalizedrefrigerator/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/personalizedrefrigerator/orgs",
|
||
"repos_url": "https://api.github.com/users/personalizedrefrigerator/repos",
|
||
"events_url": "https://api.github.com/users/personalizedrefrigerator/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/personalizedrefrigerator/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-19T15:43:47Z",
|
||
"updated_at": "2026-03-19T15:43:47Z",
|
||
"body": "> I've also https://github.com/laurent22/joplin/pull/14793 for the settings screen, which should help catch certain accessibility issues.\r\n\r\nI've merged recent changes from `dev`: The new accessibility tests should now run in CI.",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091114943/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091498875",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4091498875",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4091498875,
|
||
"node_id": "IC_kwDOBLftOs7z31F7",
|
||
"user": {
|
||
"login": "personalizedrefrigerator",
|
||
"id": 46334387,
|
||
"node_id": "MDQ6VXNlcjQ2MzM0Mzg3",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/46334387?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/personalizedrefrigerator",
|
||
"html_url": "https://github.com/personalizedrefrigerator",
|
||
"followers_url": "https://api.github.com/users/personalizedrefrigerator/followers",
|
||
"following_url": "https://api.github.com/users/personalizedrefrigerator/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/personalizedrefrigerator/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/personalizedrefrigerator/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/personalizedrefrigerator/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/personalizedrefrigerator/orgs",
|
||
"repos_url": "https://api.github.com/users/personalizedrefrigerator/repos",
|
||
"events_url": "https://api.github.com/users/personalizedrefrigerator/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/personalizedrefrigerator/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-19T16:33:38Z",
|
||
"updated_at": "2026-03-19T16:33:38Z",
|
||
"body": "> I've merged recent changes from dev: The new accessibility tests should now run in CI.\r\n\r\nThe accessibility checker has flagged two potential issues:\r\n- Elements with [`role=\"tablist\"`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/tablist_role) cannot contain `button`s or `input`s.\r\n - Based on the [spec](https://w3c.github.io/aria/#tablist:~:text=composite-,Allowed,tab), `tablist` should only contain elements with the `tab` role.\r\n- The settings search input has insufficient text contrast.\r\n - Note: The [WebAIM contrast checker](https://webaim.org/resources/contrastchecker/) might be helpful here.\r\n\r\n<details>\r\n\r\n```diff\r\n- Array []\r\n+ Array [\r\n+ Object {\r\n+ \"description\": \"Ensure elements with an ARIA role that require child roles contain them\",\r\n+ \"help\": \"Certain ARIA roles must contain particular children\",\r\n+ \"helpUrl\": \"https://dequeuniversity.com/rules/axe/4.11/aria-required-children?application=playwright\",\r\n+ \"id\": \"aria-required-children\",\r\n+ \"impact\": \"critical\",\r\n+ \"nodes\": Array [\r\n+ Object {\r\n+ \"all\": Array [],\r\n+ \"any\": Array [\r\n+ Object {\r\n+ \"data\": Object {\r\n+ \"messageKey\": \"unallowed\",\r\n+ \"values\": \"input[tabindex], button[aria-label]\",\r\n+ },\r\n+ \"id\": \"aria-required-children\",\r\n+ \"impact\": \"critical\",\r\n+ \"message\": \"Element has children which are not allowed: input[tabindex], button[aria-label]\",\r\n+ \"relatedNodes\": Array [\r\n+ Object {\r\n+ \"html\": \"<input placeholder=\\\"Search settings...\\\" spellcheck=\\\"false\\\" class=\\\"sc-jsJBEP sc-iHGNWf cGZLNz dPRrXf\\\" type=\\\"search\\\" value=\\\"\\\">\",\r\n+ \"target\": Array [\r\n+ \"input[placeholder=\\\"Search settings...\\\"]\",\r\n+ ],\r\n+ },\r\n+ Object {\r\n+ \"html\": \"<button aria-label=\\\"Search\\\" class=\\\"sc-koXPp jxDRVO\\\"><span class=\\\"sc-bmzYkS hQFofX icon-search\\\"></span></button>\",\r\n+ \"target\": Array [\r\n+ \".sc-JrDLc > .sc-eeDRCY.kILkiy > .sc-koXPp.jxDRVO[aria-label=\\\"Search\\\"]\",\r\n+ ],\r\n+ },\r\n+ ],\r\n+ },\r\n+ ],\r\n+ \"failureSummary\": \"Fix any of the following:\r\n+ Element has children which are not allowed: input[tabindex], button[aria-label]\",\r\n+ \"html\": \"<div class=\\\"sc-esYiGF ffDzkK settings-sidebar _scrollbar2\\\" role=\\\"tablist\\\">\",\r\n+ \"impact\": \"critical\",\r\n+ \"none\": Array [],\r\n+ \"target\": Array [\r\n+ \".sc-esYiGF\",\r\n+ ],\r\n+ },\r\n+ ],\r\n+ \"tags\": Array [\r\n+ \"cat.aria\",\r\n+ \"wcag2a\",\r\n+ \"wcag131\",\r\n+ \"EN-301-549\",\r\n+ \"EN-9.1.3.1\",\r\n+ \"RGAAv4\",\r\n+ \"RGAA-9.3.1\",\r\n+ ],\r\n+ },\r\n+ Object {\r\n+ \"description\": \"Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds\",\r\n+ \"help\": \"Elements must meet minimum color contrast ratio thresholds\",\r\n+ \"helpUrl\": \"https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright\",\r\n+ \"id\": \"color-contrast\",\r\n+ \"impact\": \"serious\",\r\n+ \"nodes\": Array [\r\n+ Object {\r\n+ \"all\": Array [],\r\n+ \"any\": Array [\r\n+ Object {\r\n+ \"data\": Object {\r\n+ \"bgColor\": \"#989ba0\",\r\n+ \"colorParse\": undefined,\r\n+ \"contrastRatio\": 4.29,\r\n+ \"expectedContrastRatio\": \"4.5:1\",\r\n+ \"fgColor\": \"#32373f\",\r\n+ \"fontSize\": \"9.0pt (12px)\",\r\n+ \"fontWeight\": \"normal\",\r\n+ \"messageKey\": null,\r\n+ \"shadowColor\": undefined,\r\n+ },\r\n+ \"id\": \"color-contrast\",\r\n+ \"impact\": \"serious\",\r\n+ \"message\": \"Element has insufficient color contrast of 4.29 (foreground color: #32373f, background color: #989ba0, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1\",\r\n+ \"relatedNodes\": Array [\r\n+ Object {\r\n+ \"html\": \"<input placeholder=\\\"Search settings...\\\" spellcheck=\\\"false\\\" class=\\\"sc-jsJBEP sc-iHGNWf cGZLNz dPRrXf\\\" type=\\\"search\\\" value=\\\"\\\">\",\r\n+ \"target\": Array [\r\n+ \"input[placeholder=\\\"Search settings...\\\"]\",\r\n+ ],\r\n+ },\r\n+ Object {\r\n+ \"html\": \"<div class=\\\"sc-JrDLc gLHjPy\\\">\",\r\n+ \"target\": Array [\r\n+ \".sc-JrDLc\",\r\n+ ],\r\n+ },\r\n+ ],\r\n+ },\r\n+ ],\r\n+ \"failureSummary\": \"Fix any of the following:\r\n+ Element has insufficient color contrast of 4.29 (foreground color: #32373f, background color: #989ba0, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1\",\r\n+ \"html\": \"<input placeholder=\\\"Search settings...\\\" spellcheck=\\\"false\\\" class=\\\"sc-jsJBEP sc-iHGNWf cGZLNz dPRrXf\\\" type=\\\"search\\\" value=\\\"\\\">\",\r\n+ \"impact\": \"serious\",\r\n+ \"none\": Array [],\r\n+ \"target\": Array [\r\n+ \"input[placeholder=\\\"Search settings...\\\"]\",\r\n+ ],\r\n+ },\r\n+ ],\r\n+ \"tags\": Array [\r\n+ \"cat.color\",\r\n+ \"wcag2aa\",\r\n+ \"wcag143\",\r\n+ \"TTv5\",\r\n+ \"TT13.c\",\r\n+ \"EN-301-549\",\r\n+ \"EN-9.1.4.3\",\r\n+ \"ACT\",\r\n+ \"RGAAv4\",\r\n+ \"RGAA-3.2.1\",\r\n+ ],\r\n+ },\r\n+ ]\r\n\r\n```\r\n\r\n</details>",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4091498875/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4092508023",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4092508023",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4092508023,
|
||
"node_id": "IC_kwDOBLftOs7z7rd3",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-19T18:47:06Z",
|
||
"updated_at": "2026-03-19T18:47:06Z",
|
||
"body": "> > I've merged recent changes from dev: The new accessibility tests should now run in CI.\r\n> \r\n> The accessibility checker has flagged two potential issues:\r\n> \r\n> * Elements with [`role=\"tablist\"`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/tablist_role) cannot contain `button`s or `input`s.\r\n> \r\n> * Based on the [spec](https://w3c.github.io/aria/#tablist:~:text=composite-,Allowed,tab), `tablist` should only contain elements with the `tab` role.\r\n> * The settings search input has insufficient text contrast.\r\n> \r\n> * Note: The [WebAIM contrast checker](https://webaim.org/resources/contrastchecker/) might be helpful here.\r\n> \r\n> Details\r\n\r\nThanks @personalizedrefrigerator — I synced with the latest dev changes and addressed the two accessibility issues flagged by CI:\r\n\r\n* moved the search input outside the tablist so the tablist now contains only tab elements\r\n* adjusted the search input styling to improve text contrast\r\n\r\nI also rechecked keyboard navigation for the sidebar/search flow locally. CI should reflect the updated state after this push.\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4092508023/reactions",
|
||
"total_count": 1,
|
||
"+1": 1,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4118015682",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4118015682",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4118015682,
|
||
"node_id": "IC_kwDOBLftOs71c-7C",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-24T12:53:01Z",
|
||
"updated_at": "2026-03-24T12:53:01Z",
|
||
"body": "> Thank you for working on this! I've tested the pull request locally.\r\n> \r\n> Observed issues:\r\n> \r\n> * The up/down arrows only sometimes changes the selected tab:\r\n> \r\n> Screencast.from.2026-03-23.08-52-36.webm \r\n> To reproduce: 1) start searching, 2) use the tab key to move keyboard focus to the tab list, and 3) press the up/down arrows. For me, this scrolls the tab list, rather than changes tabs. However, after clicking on the tab list, the arrow keys can successfully change the selected tab.\r\n> \r\n> * Low contrast in highlight marks while searching: It's difficult to read highlighted text in light mode (see [WCAG 2.2: Contrast/minimum](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html)):\r\n> <img alt=\"screenshot: Very low contrast in search markers\" width=\"942\" height=\"623\" src=\"https://private-user-images.githubusercontent.com/46334387/567837164-288b06f8-3a77-4a24-969c-08cbe7bc8fde.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQzNTU0MTEsIm5iZiI6MTc3NDM1NTExMSwicGF0aCI6Ii80NjMzNDM4Ny81Njc4MzcxNjQtMjg4YjA2ZjgtM2E3Ny00YTI0LTk2OWMtMDhjYmU3YmM4ZmRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzI0VDEyMjUxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc1ZjRlZmIxYTM2ZjViNGRiOTEyMzlkM2RjMWY1N2MzZjcwOThmZTdhZTRlNjBiN2E0ZDcwY2Q5ODc4ZTE5OWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pxuhGXpgEGjKLQfUoDxV0Fwc27iEytciDOyPMjIJ5uQ\">\r\n\r\n Thanks for the detailed review sir,\r\n\r\nI’ve addressed the reported issues:\r\n\r\n* Fixed arrow key navigation in the sidebar tab list — up/down arrows now reliably change the selected tab when focused via keyboard and no longer scroll the list.\r\n* Improved contrast of search highlight marks to ensure readability (WCAG-compliant in both themes).\r\n* Replaced `React.createElement` usage with JSX for highlight rendering.\r\n\r\nI’ve re-tested keyboard navigation and search behavior locally, including keyboard-only interaction.\r\n\r\nI’ve also attached a short video demonstrating:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/393d680e-1779-45f5-aad7-9330a9fd04f2\r\n\r\n\r\n\r\n* keyboard navigation with arrow keys\r\n* search + highlight visibility\r\n\r\nPlease let me know if anything still needs adjustment.\r\n",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4118015682/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4122583172",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4122583172",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4122583172,
|
||
"node_id": "IC_kwDOBLftOs71uaCE",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-25T01:48:52Z",
|
||
"updated_at": "2026-03-25T01:48:52Z",
|
||
"body": "Thanks for the suggestions @personalizedrefrigerator \r\n\r\nI've updated the `screenComp` assignment to a multi-line format for better readability.\r\n\r\nI’m also refactoring the new inline styles to use RSCSS and aligning them with the guidelines in `spec/desktop_styling`.\r\n\r\nLet me know if anything else stands out.",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4122583172/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4160920256",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4160920256",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4160920256,
|
||
"node_id": "IC_kwDOBLftOs74AprA",
|
||
"user": {
|
||
"login": "Kartikeya-guthub",
|
||
"id": 207419836,
|
||
"node_id": "U_kgDODFz5vA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/207419836?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Kartikeya-guthub",
|
||
"html_url": "https://github.com/Kartikeya-guthub",
|
||
"followers_url": "https://api.github.com/users/Kartikeya-guthub/followers",
|
||
"following_url": "https://api.github.com/users/Kartikeya-guthub/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Kartikeya-guthub/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Kartikeya-guthub/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Kartikeya-guthub/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Kartikeya-guthub/orgs",
|
||
"repos_url": "https://api.github.com/users/Kartikeya-guthub/repos",
|
||
"events_url": "https://api.github.com/users/Kartikeya-guthub/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Kartikeya-guthub/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-31T08:41:47Z",
|
||
"updated_at": "2026-03-31T08:41:47Z",
|
||
"body": "@personalizedrefrigerator Hi, I’ve addressed all the requested changes and updated the PR accordingly.\r\n\r\nWould appreciate a re-review when you have time. Thanks!",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4160920256/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
},
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178614012",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14769#issuecomment-4178614012",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14769",
|
||
"id": 4178614012,
|
||
"node_id": "IC_kwDOBLftOs75EJb8",
|
||
"user": {
|
||
"login": "laurent22",
|
||
"id": 1285584,
|
||
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/laurent22",
|
||
"html_url": "https://github.com/laurent22",
|
||
"followers_url": "https://api.github.com/users/laurent22/followers",
|
||
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
||
"repos_url": "https://api.github.com/users/laurent22/repos",
|
||
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-04-02T15:16:19Z",
|
||
"updated_at": "2026-04-02T15:16:19Z",
|
||
"body": "Hello, unfortunately we no longer need this pull request as there's a duplicate here, that we will probably merge instead: https://github.com/laurent22/joplin/pull/14820",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178614012/reactions",
|
||
"total_count": 0,
|
||
"+1": 0,
|
||
"-1": 0,
|
||
"laugh": 0,
|
||
"hooray": 0,
|
||
"confused": 0,
|
||
"heart": 0,
|
||
"rocket": 0,
|
||
"eyes": 0
|
||
},
|
||
"performed_via_github_app": null
|
||
}
|
||
]
|
||
} |