This commit is contained in:
Josh at WLTechBlog
2025-11-20 14:47:55 -07:00
parent 88d8202b0d
commit f8fbfddc7f
5 changed files with 769 additions and 12 deletions

View File

@@ -4877,7 +4877,7 @@ func main() {
// Register web_keyboard_test tool
mcpServer.AddTool(mcp.Tool{
Name: "web_keyboard_test_cremotemcp",
Description: "Test keyboard navigation and accessibility including tab order, focus indicators, and keyboard traps",
Description: "Test keyboard navigation and accessibility including tab order, focus indicators, and keyboard traps. Uses real Tab key simulation by default for accurate :focus-within testing.",
InputSchema: mcp.ToolInputSchema{
Type: "object",
Properties: map[string]any{
@@ -4885,6 +4885,11 @@ func main() {
"type": "string",
"description": "Tab ID (optional, uses current tab)",
},
"use_real_keys": map[string]any{
"type": "boolean",
"description": "Use real Tab key simulation (default: true, recommended for accurate focus-within testing)",
"default": true,
},
"timeout": map[string]any{
"type": "integer",
"description": "Timeout in seconds (default: 15)",
@@ -4900,9 +4905,10 @@ func main() {
}
tab := getStringParam(params, "tab", cremoteServer.currentTab)
useRealKeys := getBoolParam(params, "use_real_keys", true)
timeout := getIntParam(params, "timeout", 15)
result, err := cremoteServer.client.TestKeyboardNavigation(tab, timeout)
result, err := cremoteServer.client.TestKeyboardNavigation(tab, useRealKeys, timeout)
if err != nil {
return &mcp.CallToolResult{
Content: []mcp.Content{
@@ -5494,7 +5500,7 @@ func main() {
// Register web_keyboard_audit tool
mcpServer.AddTool(mcp.Tool{
Name: "web_keyboard_audit_cremotemcp",
Description: "Perform keyboard navigation assessment with actionable results. Returns summary of issues rather than full element lists, reducing token usage by ~80%.",
Description: "Perform keyboard navigation assessment with actionable results. Uses real Tab key simulation by default for accurate :focus-within testing. Returns summary of issues rather than full element lists, reducing token usage by ~80%.",
InputSchema: mcp.ToolInputSchema{
Type: "object",
Properties: map[string]any{
@@ -5517,6 +5523,11 @@ func main() {
"description": "Check for keyboard traps (default: true)",
"default": true,
},
"use_real_keys": map[string]any{
"type": "boolean",
"description": "Use real Tab key simulation (default: true, recommended for accurate focus-within testing)",
"default": true,
},
"timeout": map[string]any{
"type": "integer",
"description": "Timeout in seconds (default: 15)",
@@ -5535,9 +5546,10 @@ func main() {
checkFocusIndicators := getBoolParam(params, "check_focus_indicators", true)
checkTabOrder := getBoolParam(params, "check_tab_order", true)
checkKeyboardTraps := getBoolParam(params, "check_keyboard_traps", true)
useRealKeys := getBoolParam(params, "use_real_keys", true)
timeout := getIntParam(params, "timeout", 15)
result, err := cremoteServer.client.GetKeyboardAudit(tab, checkFocusIndicators, checkTabOrder, checkKeyboardTraps, timeout)
result, err := cremoteServer.client.GetKeyboardAudit(tab, checkFocusIndicators, checkTabOrder, checkKeyboardTraps, useRealKeys, timeout)
if err != nil {
return &mcp.CallToolResult{
Content: []mcp.Content{