fix: Bootstrap 5 に存在しない mr-2 / mr-3 を me-2 / me-3 に修正 - #200
fix: Bootstrap 5 に存在しない mr-2 / mr-3 を me-2 / me-3 に修正#200ttokoro20240902 wants to merge 2 commits into
Conversation
管理画面のクーポン登録画面で、Bootstrap 4 の右マージンユーティリティ (mr-*) が残っており、スタイルが当たっていなかった。Bootstrap 5 では me-* にリネームされている。 - Resource/template/admin/regist.twig (411 / 450 / 473 行) - Resource/template/admin/regist_product_list_prototype.twig - Resource/template/admin/regist_category_list_prototype.twig admin の bootstrap.css に .mr-2 のルールは存在せず (.me-2 は存在する) 、 同じ regist.twig の 391 行だけが me-2 で不統一だった。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughEC-CUBEのショップ画面、管理画面、HTTP 500画面のPlaywrightアクセシビリティスナップショットを追加しました。管理画面テンプレートのBootstrap余白クラスも更新しました。 Changesショップ画面スナップショット
管理画面スナップショット
Bootstrap余白クラス更新
Estimated code review effort: 3 (Moderate) | ~25 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
🧹 Nitpick comments (1)
.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml (1)
1-245: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win10件の
.playwright-mcp/スナップショットは同一の根本原因を共有します。 これらはPlaywright MCPの対話セッションから出力された生のアクセシビリティツリーであり、[ref=eXX]のようなセッション固有識別子を含みます。複数ファイルが同一画面をツールバーの読み込み段階違いだけで重複キャプチャしています。本PRの目的(管理画面のmr-2/mr-3をme-2/me-3へ変更)とは無関係であり、これらを検証する自動テストも提供されたコンテキストに存在しません。
.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml#L1-L245: このホームページスナップショットが自動テストから参照されているか確認する。参照がなければ削除を検討する。.playwright-mcp/page-2026-07-03T06-10-41-082Z.yml#L1-L194: 商品詳細ページ(カート0件)の完了版。同じ状態を捉えた読み込み中版(page-2026-07-03T07-23-01-508Z.yml)と1か月後の再キャプチャ版(page-2026-08-03T05-27-40-288Z.yml)のうち、どれを正とするか決めて重複を整理する。.playwright-mcp/page-2026-07-03T06-10-59-326Z.yml#L1-L203: カート追加直後の商品詳細ページ。同じ状態を捉えたpage-2026-08-03T05-27-54-278Z.ymlとの重複を整理する。.playwright-mcp/page-2026-07-03T07-23-01-508Z.yml#L1-L132: Symfony Web Debug Toolbarが読み込み中の状態のみを捉えた低価値な重複ファイルを削除する。.playwright-mcp/page-2026-08-03T05-27-40-288Z.yml#L1-L179: 1か月前のキャプチャと重複するファイルを削除するか、保持理由を明記する。.playwright-mcp/page-2026-08-03T05-27-54-278Z.yml#L1-L186:page-2026-07-03T06-10-59-326Z.ymlとの重複を整理する。.playwright-mcp/page-2026-07-03T06-11-05-809Z.yml#L1-L217: カートページの完了版。読み込み中版(page-2026-07-03T07-23-31-914Z.yml)との重複を整理する。.playwright-mcp/page-2026-07-03T07-23-31-914Z.yml#L1-L155: Symfony Web Debug Toolbarが読み込み中の状態のみを捉えた低価値な重複ファイルを削除する。.playwright-mcp/page-2026-08-03T05-32-31-517Z.yml#L1-L174: お届け先複数指定ページの完了版。読み込み中版(page-2026-08-03T05-33-00-632Z.yml)との重複を整理する。.playwright-mcp/page-2026-08-03T05-33-00-632Z.yml#L1-L118: Symfony Web Debug Toolbarが読み込み中の状態のみを捉えた低価値な重複ファイルを削除する。🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml around lines 1 - 245, Playwright MCPの生スナップショットが重複しており、本PRの変更対象外です。自動テストからの参照を確認し、参照がない .playwright-mcp/page-2026-07-03T06-08-40-319Z.yml(1-245)は削除を検討してください。.playwright-mcp/page-2026-07-03T06-10-41-082Z.yml(1-194)と page-2026-08-03T05-27-40-288Z.yml(1-179)は正となる一方を保持し、page-2026-07-03T06-10-59-326Z.yml(1-203)と page-2026-08-03T05-27-54-278Z.yml(1-186)も一方に整理してください。読み込み中のみの page-2026-07-03T07-23-01-508Z.yml(1-132)、page-2026-07-03T07-23-31-914Z.yml(1-155)、page-2026-08-03T05-33-00-632Z.yml(1-118)は削除し、page-2026-07-03T06-11-05-809Z.yml(1-217)と page-2026-08-03T05-32-31-517Z.yml(1-174)は対応する読み込み中版との重複を整理してください。
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml:
- Line 18: Remove or sanitize runtime-specific snapshot data in
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml:18-18,
.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml:13-13, and
.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml:171-179. Mask the variable
cache paths, file:///var/www/html absolute paths, and profiler ID, or exclude
these generated snapshots from the repository and Playwright comparison targets.
In @.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml:
- Around line 19-21: Set an accessible name, such as an aria-label, on the
common-header search button associated with the searchbox "キーワードを入力", then
update the corresponding snapshot entries in
.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml lines 17-19,
.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml lines 17-19,
.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml lines 19-21,
.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml lines 17-19,
.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml lines 17-19, and
.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml lines 17-19 to reflect that
name.
In @.playwright-mcp/page-2026-08-03T05-26-22-467Z.yml:
- Around line 161-163: Set an accessible name for the end-date input
corresponding to available_to_date by adding and associating a dedicated label,
using a name such as 「有効期間(終了日)」. Update the form definition in CouponType.php
and preserve its required end-date validation.
In @.playwright-mcp/page-2026-08-03T05-27-30-540Z.yml:
- Around line 20-34: 装飾用アイコンがリンク名へ混入しないよう、会員登録・お気に入り・ログインの各リンク内アイコンと同様のアイコン文字列に
aria-hidden="true"
を設定し、アクセシブルなリンク名を各日本語ラベルだけにしてください。メニューアイコンは装飾表示ではなく操作要素として、名前付きの button
として公開してください。
- Around line 35-39: Update the cart control represented by generic ref=f7e37 to
use a named link when it navigates to the cart, or a named button when it
performs JavaScript actions. Ensure the chosen control has an accessible name
and supports keyboard interaction instead of relying on cursor=pointer alone.
- Line 9:
検索・商品選択のcombobox、検索button、商品リンク、数量spinbuttonに、対象や操作内容を明確にするアクセシブルな名前を付与してください。各コントロールへ関連するlabel、aria-labelledby、または適切なaria-labelを設定し、画面上の表示名と重複しない一貫した名前で公開されるようにしてください。
In @.playwright-mcp/page-2026-08-03T05-29-44-051Z.yml:
- Around line 67-68: Remove the test marker COUPON-PAGE-EDIT-MARKER-197 from the
coupon input template in shopping_coupon.twig, then regenerate the corresponding
Playwright snapshot so the public page content no longer contains the marker.
In @.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml:
- Line 67:
クーポン入力画面の本文に表示される「COUPON-PAGE-EDIT-MARKER-197」をテンプレートまたは関連フックから削除し、その後
Playwright MCP の記録を再生成してマーカーが含まれない状態に更新してください。
---
Nitpick comments:
In @.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml:
- Around line 1-245: Playwright
MCPの生スナップショットが重複しており、本PRの変更対象外です。自動テストからの参照を確認し、参照がない
.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml(1-245)は削除を検討してください。.playwright-mcp/page-2026-07-03T06-10-41-082Z.yml(1-194)と
page-2026-08-03T05-27-40-288Z.yml(1-179)は正となる一方を保持し、page-2026-07-03T06-10-59-326Z.yml(1-203)と
page-2026-08-03T05-27-54-278Z.yml(1-186)も一方に整理してください。読み込み中のみの
page-2026-07-03T07-23-01-508Z.yml(1-132)、page-2026-07-03T07-23-31-914Z.yml(1-155)、page-2026-08-03T05-33-00-632Z.yml(1-118)は削除し、page-2026-07-03T06-11-05-809Z.yml(1-217)と
page-2026-08-03T05-32-31-517Z.yml(1-174)は対応する読み込み中版との重複を整理してください。
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: a18e0664-7f18-4141-bf07-16749f52004d
⛔ Files ignored due to path filters (14)
.playwright-mcp/console-2026-07-03T06-08-39-000Z.logis excluded by!**/*.log.playwright-mcp/console-2026-07-03T06-11-05-543Z.logis excluded by!**/*.log.playwright-mcp/console-2026-07-03T07-21-45-178Z.logis excluded by!**/*.log.playwright-mcp/console-2026-07-03T07-23-46-777Z.logis excluded by!**/*.log.playwright-mcp/console-2026-07-03T07-23-52-103Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-24-54-665Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-25-15-939Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-26-22-269Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-27-30-163Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-28-11-671Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-28-33-323Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-29-19-528Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-30-36-166Z.logis excluded by!**/*.log.playwright-mcp/console-2026-08-03T05-32-24-002Z.logis excluded by!**/*.log
📒 Files selected for processing (39)
.playwright-mcp/page-2026-07-03T06-08-40-319Z.yml.playwright-mcp/page-2026-07-03T06-10-41-082Z.yml.playwright-mcp/page-2026-07-03T06-10-59-326Z.yml.playwright-mcp/page-2026-07-03T06-11-05-809Z.yml.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml.playwright-mcp/page-2026-07-03T06-12-11-182Z.yml.playwright-mcp/page-2026-07-03T06-12-26-886Z.yml.playwright-mcp/page-2026-07-03T06-12-51-021Z.yml.playwright-mcp/page-2026-07-03T06-15-54-154Z.yml.playwright-mcp/page-2026-07-03T06-16-00-407Z.yml.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml.playwright-mcp/page-2026-07-03T07-23-01-508Z.yml.playwright-mcp/page-2026-07-03T07-23-31-914Z.yml.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml.playwright-mcp/page-2026-07-03T07-24-15-863Z.yml.playwright-mcp/page-2026-07-03T07-24-22-271Z.yml.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml.playwright-mcp/page-2026-08-03T05-25-29-897Z.yml.playwright-mcp/page-2026-08-03T05-25-41-789Z.yml.playwright-mcp/page-2026-08-03T05-25-48-517Z.yml.playwright-mcp/page-2026-08-03T05-26-22-467Z.yml.playwright-mcp/page-2026-08-03T05-27-30-540Z.yml.playwright-mcp/page-2026-08-03T05-27-40-288Z.yml.playwright-mcp/page-2026-08-03T05-27-54-278Z.yml.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml.playwright-mcp/page-2026-08-03T05-29-44-051Z.yml.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml.playwright-mcp/page-2026-08-03T05-32-24-404Z.yml.playwright-mcp/page-2026-08-03T05-32-31-517Z.yml.playwright-mcp/page-2026-08-03T05-33-00-632Z.ymlResource/template/admin/regist.twigResource/template/admin/regist_category_list_prototype.twigResource/template/admin/regist_product_list_prototype.twig
| - /url: "#trace-box-1" | ||
| - heading "HTTP 500 Internal Server Error" [level=2] [ref=e17] | ||
| - generic [ref=e19]: | ||
| - 'heading "Failed to remove file \"/var/www/html/var/cache/dev/.!!8kl/URI/4.19.0,81373184c6f30942fadaf90d195b52503f5834e7,1.ser\": unlink(/var/www/html/var/cache/dev/.!!8kl/URI/4.19.0,81373184c6f30942fadaf90d195b52503f5834e7,1.ser): Permission denied" [level=1] [ref=e20]' |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
# スナップショットがテスト設定または比較処理から参照されるか確認する。
rg -n --hidden -C 3 \
'(\.playwright-mcp|toMatchSnapshot|snapshotPathTemplate|playwright)' \
-g '!**/.git/**' .
# 実行ごとに変化する値と環境固有の値を確認する。
rg -n \
'\.\!\![^/"]+|file:///var/www/html|/_profiler/[[:alnum:]]+' \
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml \
.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml \
.playwright-mcp/page-2026-08-03T05-29-19-775Z.ymlRepository: EC-CUBE/coupon-plugin
Length of output: 159
🏁 Script executed:
#!/usr/bin/env bash
set -u
echo "tracked files matching .playwright-mcp:"
git ls-files .playwright-mcp | sed -n '1,80p'
echo
echo "yml lines containing target fragments:"
for f in \
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml \
.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml \
.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml
do
if [ -f "$f" ]; then
echo "--- $f"
wc -l "$f"
rg -n -C 2 "Failed to remove file|/var/www/html|/var/cache/dev|/\\_profiler/|Symfony Web Debug Toolbar|Loading…|Close Toolbar" "$f" || true
else
echo "--- MISSING: $f"
fi
done
echo
echo "config/test references to .playwright-mcp or playwright:"
rg -n --hidden -C 2 \
'(\.playwright-mcp|toMatchSnapshot|snapshotPathTemplate|`@playwright`|playwright|playwright-mcp)' \
-g '!**/.git/**' . || trueRepository: EC-CUBE/coupon-plugin
Length of output: 16876
実行時データを含んだスナップショットをリポジトリから外してください。
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml の failed to remove file / file:///var/www/html などと、.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml の failed to remove file / file:///var/www/html は、每次実行で変動するキャッシュ一時ディレクトリやローカル絶対パスです。.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml も file:///var/www/html と profiler ID (/_profiler/59171a?panel=request) を含み、Playwright の比較対象であれば不要な差分になります。これらの箇所はマスクするか、実行時データを含む生成物のコミットを見直してください。
📍 Affects 3 files
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml#L18-L18(this comment).playwright-mcp/page-2026-08-03T05-24-56-828Z.yml#L13-L13.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml#L171-L179
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml at line 18, Remove or
sanitize runtime-specific snapshot data in
.playwright-mcp/page-2026-07-03T07-21-49-407Z.yml:18-18,
.playwright-mcp/page-2026-08-03T05-24-56-828Z.yml:13-13, and
.playwright-mcp/page-2026-08-03T05-29-19-775Z.yml:171-179. Mask the variable
cache paths, file:///var/www/html absolute paths, and profiler ID, or exclude
these generated snapshots from the repository and Playwright comparison targets.
| - generic [ref=f3e16]: | ||
| - searchbox "キーワードを入力" [ref=f3e17] | ||
| - button [ref=f3e18] [cursor=pointer] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 5 'キーワードを入力' .Repository: EC-CUBE/coupon-plugin
Length of output: 159
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'Tracked files under .playwright-mcp:\n'
git ls-files '.playwright-mcp/*' | sed -n '1,40p'
printf '\nyml files matching dates mentioned:\n'
git ls-files '.playwright-mcp/page-*.yml' | grep -E 'page-(2026-07-03T07-23-47-382Z|2026-08-03T05-28-00-046Z|2026-07-03T06-11-16-212Z|2026-08-03T05-28-11-982Z|2026-07-03T06-11-29-081Z|2026-07-03T07-23-52-543Z|2026-08-03T05-28-32-923Z|2026-08-03T05-30-36-393Z|2026-08-03T05-31-25-683Z)\.yml' || true
printf '\nOccurrences of generic/searchbox/button labels in .playwright-mcp:\n'
rg -n -C 3 'generic \[ref=|searchbox |button \[ref=' .playwright-mcp || trueRepository: EC-CUBE/coupon-plugin
Length of output: 50378
🏁 Script executed:
#!/bin/bash
set -euo pipefail
files=(
'.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml'
'.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml'
'.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml'
'.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml'
'.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml'
'.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml'
'.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml'
'.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml'
'.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml'
)
for f in "${files[@]}"; do
if git ls-files --error-unmatch "$f" >/dev/null 2>&1; then
echo "===== $f ====="
sed -n '13,25p' "$f"
else
echo "MISSING: $f"
fi
done
printf '\nAny exact line with searchbox "キーワードを入力" in tracked yml:\n'
rg -n '^ +searchbox "キーワードを入力" \[ref=[^]]+\]' .playwright-mcp || true
printf '\nNearby button lines under same generic blocks in these files:\n'
python3 - <<'PY'
from pathlib import Path
import re
files=[
Path(p) for p in [
'.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml',
'.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml',
'.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml',
'.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml',
'.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml',
'.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml',
'.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml',
'.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml',
'.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml',
]]
for path in files:
lines=path.read_text(encoding='utf-8').splitlines()
for i,l in enumerate(lines, start=1):
if 'searchbox "キーワードを入力"' in l:
print(f"===== {path} line {i} =====")
start=max(1, i-2); end=min(len(lines), i+4)
for n in range(start,end+1):
print(f"{n}: {lines[n-1]}")
PYRepository: EC-CUBE/coupon-plugin
Length of output: 8607
検索ボタンにアクセシブル名を設定してください。
共通ヘッダーの検索機能のボタンに名前がありません。aria-label などを設定し、該当の全 .playwright-mcp/page-*.yml スナップショットを更新してください。対象は .playwright-mcp/page-2026-07-03T07-23-47-382Z.yml、.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml、.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml、.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml、.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml、.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml、.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml、.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml、.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml です。
📍 Affects 9 files
.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml#L19-L21(this comment).playwright-mcp/page-2026-08-03T05-28-00-046Z.yml#L17-L19.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml#L19-L21.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml#L17-L19.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml#L19-L21.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml#L19-L21.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml#L17-L19.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml#L17-L19.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml#L17-L19
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-07-03T07-23-47-382Z.yml around lines 19 - 21, Set
an accessible name, such as an aria-label, on the common-header search button
associated with the searchbox "キーワードを入力", then update the corresponding snapshot
entries in .playwright-mcp/page-2026-07-03T07-23-47-382Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-00-046Z.yml lines 17-19,
.playwright-mcp/page-2026-07-03T06-11-16-212Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-11-982Z.yml lines 17-19,
.playwright-mcp/page-2026-07-03T06-11-29-081Z.yml lines 19-21,
.playwright-mcp/page-2026-07-03T07-23-52-543Z.yml lines 19-21,
.playwright-mcp/page-2026-08-03T05-28-32-923Z.yml lines 17-19,
.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml lines 17-19, and
.playwright-mcp/page-2026-08-03T05-31-25-683Z.yml lines 17-19 to reflect that
name.
| - textbox "有効期間" [ref=f5e147] | ||
| - generic [ref=f5e148]: ~ | ||
| - textbox [ref=f5e150] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
終了日の入力欄にアクセシブルな名前を設定してください。
Line 163 の textbox にはアクセシブルな名前がありません。スクリーンリーダー利用者は、この必須入力が有効期間の終了日であることを識別できません。
available_to_date に専用の <label> を関連付けてください。名前は「有効期間(終了日)」などにしてください。Form/Type/CouponType.php では、この値を必須の終了日として処理します。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-26-22-467Z.yml around lines 161 - 163,
Set an accessible name for the end-date input corresponding to available_to_date
by adding and associating a dedicated label, using a name such as 「有効期間(終了日)」.
Update the form definition in CouponType.php and preserve its required end-date
validation.
| - generic [ref=f7e9]: | ||
| - generic [ref=f7e11]: | ||
| - generic: | ||
| - combobox [ref=f7e14] [cursor=pointer]: |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
操作要素にアクセシブルな名前を設定してください。
Line 9 の combobox、Line 19 の検索 button、Lines 75-82 の combobox、Lines 85-90 と 96-101 の商品リンク、Lines 93 と 112 の数量 spinbutton、Lines 103 と 108 の商品選択 combobox が名前なしで公開されています。スクリーンリーダー利用者は対象や操作内容を識別できません。関連付けた <label>、aria-labelledby、または適切な aria-label を追加してください。
Also applies to: 19-19, 75-82, 85-93, 96-112
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-27-30-540Z.yml at line 9,
検索・商品選択のcombobox、検索button、商品リンク、数量spinbuttonに、対象や操作内容を明確にするアクセシブルな名前を付与してください。各コントロールへ関連するlabel、aria-labelledby、または適切なaria-labelを設定し、画面上の表示名と重複しない一貫した名前で公開されるようにしてください。
| - generic: | ||
| - generic [ref=f7e20]: | ||
| - generic [ref=f7e22]: | ||
| - link " 新規会員登録" [ref=f7e24] [cursor=pointer]: | ||
| - /url: http://localhost:8080/entry | ||
| - generic [ref=f7e25]: | ||
| - generic [ref=f7e26]: 新規会員登録 | ||
| - link " お気に入り" [ref=f7e28] [cursor=pointer]: | ||
| - /url: http://localhost:8080/mypage/favorite | ||
| - generic [ref=f7e29]: | ||
| - generic [ref=f7e30]: お気に入り | ||
| - link " ログイン" [ref=f7e32] [cursor=pointer]: | ||
| - /url: http://localhost:8080/mypage/login | ||
| - generic [ref=f7e33]: | ||
| - generic [ref=f7e34]: ログイン |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
装飾用アイコンをアクセシビリティツリーから除外してください。
Lines 23、27、31 のリンク名に 、、 が含まれています。Line 133 にもアイコン文字列が露出しています。装飾用アイコンには aria-hidden="true" を設定し、リンク名を 新規会員登録、お気に入り、ログイン のみにしてください。Line 20 の がメニュー操作なら、名前付き button として公開してください。
Also applies to: 37-37, 133-133
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-27-30-540Z.yml around lines 20 - 34,
装飾用アイコンがリンク名へ混入しないよう、会員登録・お気に入り・ログインの各リンク内アイコンと同様のアイコン文字列に aria-hidden="true"
を設定し、アクセシブルなリンク名を各日本語ラベルだけにしてください。メニューアイコンは装飾表示ではなく操作要素として、名前付きの button
として公開してください。
| - generic [ref=f7e37] [cursor=pointer]: | ||
| - generic [ref=f7e38]: | ||
| - text: | ||
| - generic [ref=f7e39]: "0" | ||
| - generic [ref=f7e40]: ¥0 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
カート操作を link または button として公開してください。
Line 35 のカート領域は generic [cursor=pointer] で、操作ロールとアクセシブルな名前がありません。カートへ遷移する操作なら名前付きの link として実装してください。JavaScript操作なら名前付きの button とキーボード操作を実装してください。cursor=pointer だけでは操作できません。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-27-30-540Z.yml around lines 35 - 39,
Update the cart control represented by generic ref=f7e37 to use a named link
when it navigates to the cart, or a named button when it performs JavaScript
actions. Ensure the chosen control has an accessible name and supports keyboard
interaction instead of relying on cursor=pointer alone.
| - paragraph [ref=f14e62]: COUPON-PAGE-EDIT-MARKER-197 | ||
| - heading "クーポンコードの入力" [level=1] [ref=f14e65] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 3 'COUPON-PAGE-EDIT-MARKER-197' .Repository: EC-CUBE/coupon-plugin
Length of output: 159
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "tracked files matching page yml:"
git ls-files | grep -E '\.playwright-mcp/.*\.yml$' || true
echo
echo "marker search including untracked:"
grep -RIne 'COUPON-PAGE-EDIT-MARKER-197' . 2>/dev/null || true
echo
echo "relevant yml around heading/paragraph if file exists:"
if [ -f ".playwright-mcp/page-2026-08-03T05-29-44-051Z.yml" ]; then
sed -n '45,75p' ".playwright-mcp/page-2026-08-03T05-29-44-051Z.yml" | cat -n
fiRepository: EC-CUBE/coupon-plugin
Length of output: 4067
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "references to COUPON-PAGE-EDIT-MARKER-197 in repository files:"
git ls-files -z | xargs -0 grep -Ine 'COUPON-PAGE-EDIT-MARKER-197' 2>/dev/null || true
echo
echo "references to COUPON-PAGE-EDIT-MARKER in repository files:"
git ls-files -z | xargs -0 grep -Ine 'COUPON-PAGE-EDIT-MARKER' 2>/dev/null || true
echo
echo "yml snapshot references with coupon marker patterns:"
git ls-files .playwright-mcp/*.yml | xargs grep -InE 'COUPON-PAGE-EDIT-MARKER|coupon|クーポンコードの入力' 2>/dev/null | head -120Repository: EC-CUBE/coupon-plugin
Length of output: 5965
クーポン入力テンプレートからテスト用マーカーを削除してください。
shopping_coupon.twig 側で COUPON-PAGE-EDIT-MARKER-197 が入っており、.playwright-mcp/page-2026-08-03T05-29-44-051Z.yml に公開画面としてその内容が取得されています。このマーカーをテンプレートから削除後、スナップショットも再取得してください。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-29-44-051Z.yml around lines 67 - 68,
Remove the test marker COUPON-PAGE-EDIT-MARKER-197 from the coupon input
template in shopping_coupon.twig, then regenerate the corresponding Playwright
snapshot so the public page content no longer contains the marker.
| - link "フルーツ" [ref=f16e59] [cursor=pointer]: | ||
| - /url: http://localhost:8080/products/list?category_id=6 | ||
| - main [ref=f16e61]: | ||
| - paragraph [ref=f16e62]: COUPON-PAGE-EDIT-MARKER-197 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 3 --fixed-strings 'COUPON-PAGE-EDIT-MARKER-197' .Repository: EC-CUBE/coupon-plugin
Length of output: 159
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Locate and inspect the reviewed file and relevant nearby context without changing files.
if [ -f ".playwright-mcp/page-2026-08-03T05-30-36-393Z.yml" ]; then
echo "== reviewed file exists =="
wc -l ".playwright-mcp/page-2026-08-03T05-30-36-393Z.yml"
sed -n '55,75p' ".playwright-mcp/page-2026-08-03T05-30-36-393Z.yml" | cat -n
else
echo "== reviewed file missing =="
fi
echo "== marker occurrences in tracked files =="
git ls-files | xargs rg -n -C 3 --fixed-strings 'COUPON-PAGE-EDIT-MARKER-197' || true
echo "== marker-like strings =="
rg -n --fixed-strings 'MARKER-' . || trueRepository: EC-CUBE/coupon-plugin
Length of output: 3496
テスト用マーカーをテンプレートから削除してください。
COUPON-PAGE-EDIT-MARKER-197 がクーポン入力画面の本文領域に埋め込まれています。クーポン表示用のテンプレート/フックにこのマーカーを削除し、Playwright MCP の記録を再生成してください。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.playwright-mcp/page-2026-08-03T05-30-36-393Z.yml at line 67,
クーポン入力画面の本文に表示される「COUPON-PAGE-EDIT-MARKER-197」をテンプレートまたは関連フックから削除し、その後
Playwright MCP の記録を再生成してマーカーが含まれない状態に更新してください。
GitHub 側で actions/cache v1 が廃止され、ワークフローが自動的に失敗する ようになったため、本ブランチの CI が全ジョブ failure になっていた。 ##[error]This request has been automatically failed because it uses a deprecated version of `actions/cache: v1`. - actions/cache@v1 → @v4 - ::set-output → $GITHUB_OUTPUT(同じく非推奨のため合わせて更新) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
作業ファイル(Playwright のスナップショット)を誤って含めていたことと、CI 復旧・4.3 マトリクスのテスト追随を含めて整理したいため、いったんクローズして出し直します。後継 PR は下記です。 |
|
後継 PR: #201 |
概要
管理画面のクーポン登録画面に Bootstrap 4 の右マージンユーティリティ(
mr-*)が残っており、何のスタイルも当たっていません。Bootstrap 5 ではme-*にリネームされているため、ボタン/アイコンの余白が詰まって表示されます。#197 のレビューで nanasess から指摘された既存不具合で、4.4 対応ブランチ側は #197 に同梱して修正済みです。default ブランチ (
4.2) にも同じ 5 箇所が存在するため、こちらにも反映します。変更内容
Resource/template/admin/regist.twigmr-3→me-3Resource/template/admin/regist.twigmr-2→me-2Resource/template/admin/regist_product_list_prototype.twigmr-3→me-3Resource/template/admin/regist_category_list_prototype.twigmr-3→me-3根拠
html/template/admin/assets/css/bootstrap.cssに.mr-2のルールは 存在しません(.me-2は存在します)regist.twigの 391 行だけがme-2になっており不統一でしたml-*/pr-*/float-left/badge-*/sr-onlyなど)は grep で 0 件のため、本 PR の対象は上記 5 箇所のみですテンプレートのクラス名のみの変更で、ロジック・テストへの影響はありません。
CI について(追加コミット 75fd402)
本 PR を出した時点で、
4.2ブランチの CI が全ジョブ failure になっていました。原因はテンプレート変更ではなく、GitHub 側でactions/cachev1 が廃止され、ワークフローが自動的に失敗するようになったためです。本 PR の内容を CI で検証できるようにするため、最小限だけ追随しています。
actions/cache@v1→@v4::set-output→$GITHUB_OUTPUT(同じく非推奨)actions/checkout@v2などの他の古い action は本 PR では触っていません。CI 更新を別 PR に分けたい場合はお知らせください。🤖 Generated with Claude Code
Summary by CodeRabbit
テスト
スタイル