Skip to content

Commit ad6d135

Browse files
committed
fix: add role attribute to markdown view mode buttons for accessibility
1 parent 88ddc98 commit ad6d135

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

app/pages/code/[...path].vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ useSeoMeta({
387387
<button
388388
v-for="mode in markdownViewModes"
389389
:key="mode.key"
390+
role="tab"
390391
class="px-2 py-1.5 font-mono text-xs rounded transition-colors duration-150 border border-solid focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fg/50 inline-flex items-center gap-1.5"
391392
:class="
392393
markdownViewMode === mode.key

server/api/registry/file/[...pkg].get.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as v from 'valibot'
22
import { PackageFileQuerySchema } from '#shared/schemas/package'
3+
import type { ReadmeResponse } from '#shared/types/readme'
34
import {
45
CACHE_MAX_AGE_ONE_YEAR,
56
ERROR_PACKAGE_VERSION_AND_FILE_FAILED,
@@ -168,9 +169,14 @@ export default defineCachedEventHandler(
168169

169170
let markdownHtml: ReadmeResponse | undefined
170171
if (language === 'markdown') {
171-
const packageData = await fetchNpmPackage(rawPackageName)
172-
const repoInfo = parseRepositoryInfo(packageData.repository)
173-
markdownHtml = await renderReadmeHtml(content, rawPackageName, repoInfo)
172+
// Best-effort: markdown preview is optional; never block code view
173+
try {
174+
const packageData = await fetchNpmPackage(rawPackageName)
175+
const repoInfo = parseRepositoryInfo(packageData.repository)
176+
markdownHtml = await renderReadmeHtml(content, rawPackageName, repoInfo)
177+
} catch {
178+
markdownHtml = undefined
179+
}
174180
}
175181

176182
return {

0 commit comments

Comments
 (0)