我有一个网页,其中对话框<section role="dialog">元素在内容顶部打开,导致下面的元素/内容无法访问。
当对话框打开时,下面的所有内容都会接收tabindex="-1"以将选项卡焦点保持在对话框内。
下面的内容还接收一个 CSS 类,该类会模糊元素,并设置pointer-events为 none,因此元素无法用鼠标单击,但这些元素仍然全部存在并在 DOM 中可见(它们未设置为display: none)。
两个问题:
aria-hidden="true"所有这些元素吗?
aria-hidden="true"这些元素,然后恢复到aria-hidden="false",屏幕阅读器会发现发生了此更改吗?
aria-hidden="true"意味着屏幕阅读器不会再次考虑该元素,即使我稍后将其设置为aria-hidden="false".aria-live共享父元素(对话框和内容都存在)?aria-live,屏幕阅读器会考虑之前设置的元素aria-hidden="true"吗?注意:该对话框是一个带有提交按钮的表单。有时它可能包含一个Dismiss按钮,但并非在所有情况下都如此。该对话框可以充当需要提交表单才能继续的大门。
我们正在构建一个需要精度的 API 端点。我们希望对 POST/PUT 到服务器的参数强制执行严格的验证。
如果 api 用户发送了一key=value对不受支持的参数(例如,我们允许参数 [first_name, last_name],并且用户包含不受支持的参数 [country]),我们希望验证失败。
已尝试构建一个名为allowed_attributes(用作allowed_attributes:attr1,attr2,...)的自定义验证器,但为了使其可以在$validationRules数组中使用,它必须应用于嵌套/子属性列表的父级(...因为否则我们的自定义验证器没有访问正在验证的属性)。
Validator::extend('allowed_attributes', 'App\Validators\AllowedAttributesValidator@validate');
Run Code Online (Sandbox Code Playgroud)
这给其他验证器带来了问题,然后我们必须预测这个父/子结构及其周围的代码,包括错误键和错误消息字符串的额外验证后清理。
tl;dr:非常脏,不是一个干净的实现。
$validationRules = [
'parent' => 'allowed_attributes:first_name,last_name',
'parent.first_name' => 'required|string|max:40',
'parent.last_name' => 'required|string|max:40'
];
$isValid = Validator::make(['parent' => $request], $validationRules);
var_dump("Validation results: " . ($isValid ? "passed" : "failed"));
Run Code Online (Sandbox Code Playgroud)
关于如何在 Laravel 中更干净地完成此操作,而不需要使用父/子关系来访问所有 $request 属性的列表(在自定义验证器内),有什么想法/建议吗?
我已经搜索并尝试了解决这个问题的各种解决方案,但没有一个有效。
看起来 WordPress 忽略了以下内容并记录了已弃用的消息:
error_reporting(E_ALL ^ E_DEPRECATED);
ini_set('error_reporting', E_ALL ^ E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)
我的php.ini:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Run Code Online (Sandbox Code Playgroud)
我的wp-config.php:
<?php
define( 'WP_CACHE', true );
error_reporting(E_ALL ^ E_DEPRECATED);
...
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Run Code Online (Sandbox Code Playgroud)
插件正在向我的debug.log文件发送PHP Deprecated: ...日志消息。每天生成数GB。使debug.log无法使用。
我向插件开发人员报告,但有些插件没有及时修复。我无法自行修复,因为插件更新会覆盖我的更改。
禁用这些的解决方案是什么?
服务器: