lighthouse 12.2.3 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/test/smokehouse/core-tests.js +8 -0
- package/core/audits/byte-efficiency/render-blocking-resources.js +1 -1
- package/core/audits/has-hsts.d.ts +44 -0
- package/core/audits/has-hsts.js +208 -0
- package/core/audits/origin-isolation.d.ts +40 -0
- package/core/audits/origin-isolation.js +155 -0
- package/core/computed/metrics/cumulative-layout-shift.js +4 -4
- package/core/computed/metrics/lantern-metric.js +4 -2
- package/core/computed/navigation-insights.d.ts +1 -1
- package/core/computed/network-analysis.js +13 -1
- package/core/computed/trace-engine-result.d.ts +4 -0
- package/core/computed/trace-engine-result.js +30 -4
- package/core/config/default-config.js +4 -0
- package/core/gather/gatherers/seo/font-size.d.ts +1 -0
- package/core/gather/gatherers/seo/font-size.js +20 -11
- package/core/lib/trace-engine.d.ts +1 -1
- package/core/lib/trace-engine.js +1 -1
- package/package.json +4 -4
- package/shared/localization/locales/ar-XB.json +60 -0
- package/shared/localization/locales/ar.json +60 -0
- package/shared/localization/locales/bg.json +77 -17
- package/shared/localization/locales/ca.json +77 -17
- package/shared/localization/locales/cs.json +77 -17
- package/shared/localization/locales/da.json +77 -17
- package/shared/localization/locales/de.json +77 -17
- package/shared/localization/locales/el.json +77 -17
- package/shared/localization/locales/en-GB.json +70 -10
- package/shared/localization/locales/en-US.json +154 -40
- package/shared/localization/locales/en-XL.json +154 -40
- package/shared/localization/locales/es-419.json +77 -17
- package/shared/localization/locales/es.json +60 -0
- package/shared/localization/locales/fi.json +60 -0
- package/shared/localization/locales/fil.json +60 -0
- package/shared/localization/locales/fr.json +77 -17
- package/shared/localization/locales/he.json +77 -17
- package/shared/localization/locales/hi.json +77 -17
- package/shared/localization/locales/hr.json +60 -0
- package/shared/localization/locales/hu.json +77 -17
- package/shared/localization/locales/id.json +77 -17
- package/shared/localization/locales/it.json +77 -17
- package/shared/localization/locales/ja.json +60 -0
- package/shared/localization/locales/ko.json +60 -0
- package/shared/localization/locales/lt.json +77 -17
- package/shared/localization/locales/lv.json +77 -17
- package/shared/localization/locales/nl.json +60 -0
- package/shared/localization/locales/no.json +77 -17
- package/shared/localization/locales/pl.json +60 -0
- package/shared/localization/locales/pt-PT.json +60 -0
- package/shared/localization/locales/pt.json +77 -17
- package/shared/localization/locales/ro.json +77 -17
- package/shared/localization/locales/ru.json +60 -0
- package/shared/localization/locales/sk.json +60 -0
- package/shared/localization/locales/sl.json +77 -17
- package/shared/localization/locales/sr-Latn.json +60 -0
- package/shared/localization/locales/sr.json +60 -0
- package/shared/localization/locales/sv.json +77 -17
- package/shared/localization/locales/ta.json +77 -17
- package/shared/localization/locales/te.json +72 -12
- package/shared/localization/locales/th.json +60 -0
- package/shared/localization/locales/tr.json +77 -17
- package/shared/localization/locales/uk.json +78 -18
- package/shared/localization/locales/vi.json +60 -0
- package/shared/localization/locales/zh-HK.json +77 -17
- package/shared/localization/locales/zh-TW.json +77 -17
- package/shared/localization/locales/zh.json +77 -17
- package/types/artifacts.d.ts +2 -2
|
@@ -221,8 +221,9 @@ class FontSize extends BaseGatherer {
|
|
|
221
221
|
|
|
222
222
|
const nodeIndex = doc.layout.nodeIndex[layoutIndex];
|
|
223
223
|
const styles = doc.layout.styles[layoutIndex];
|
|
224
|
-
const [fontSizeStringId] = styles;
|
|
224
|
+
const [fontSizeStringId, visibilityStringId] = styles;
|
|
225
225
|
const fontSize = getFloat(fontSizeStringId);
|
|
226
|
+
const visibility = getString(visibilityStringId);
|
|
226
227
|
|
|
227
228
|
const parentIndex = nodes.parentIndex[nodeIndex];
|
|
228
229
|
const grandParentIndex = nodes.parentIndex[parentIndex];
|
|
@@ -234,6 +235,7 @@ class FontSize extends BaseGatherer {
|
|
|
234
235
|
nodeIndex,
|
|
235
236
|
backendNodeId: nodes.backendNodeId[nodeIndex],
|
|
236
237
|
fontSize,
|
|
238
|
+
visibility,
|
|
237
239
|
textLength: getTextLength(text),
|
|
238
240
|
parentNode: {
|
|
239
241
|
...parentNode,
|
|
@@ -257,17 +259,24 @@ class FontSize extends BaseGatherer {
|
|
|
257
259
|
let failingTextLength = 0;
|
|
258
260
|
|
|
259
261
|
for (const textNodeData of this.getTextNodesInLayoutFromSnapshot(snapshot)) {
|
|
262
|
+
if (textNodeData.visibility === 'hidden') {
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
|
|
260
266
|
totalTextLength += textNodeData.textLength;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
failingNodes.push({
|
|
265
|
-
nodeId: 0, // Set later in fetchFailingNodeSourceRules.
|
|
266
|
-
parentNode: textNodeData.parentNode,
|
|
267
|
-
textLength: textNodeData.textLength,
|
|
268
|
-
fontSize: textNodeData.fontSize,
|
|
269
|
-
});
|
|
267
|
+
|
|
268
|
+
if (textNodeData.fontSize >= MINIMAL_LEGIBLE_FONT_SIZE_PX) {
|
|
269
|
+
continue;
|
|
270
270
|
}
|
|
271
|
+
|
|
272
|
+
// Once a bad TextNode is identified, its parent Node is needed.
|
|
273
|
+
failingTextLength += textNodeData.textLength;
|
|
274
|
+
failingNodes.push({
|
|
275
|
+
nodeId: 0, // Set later in fetchFailingNodeSourceRules.
|
|
276
|
+
parentNode: textNodeData.parentNode,
|
|
277
|
+
textLength: textNodeData.textLength,
|
|
278
|
+
fontSize: textNodeData.fontSize,
|
|
279
|
+
});
|
|
271
280
|
}
|
|
272
281
|
|
|
273
282
|
return {totalTextLength, failingTextLength, failingNodes};
|
|
@@ -294,7 +303,7 @@ class FontSize extends BaseGatherer {
|
|
|
294
303
|
|
|
295
304
|
// Get the computed font-size style of every node.
|
|
296
305
|
const snapshot = await session.sendCommand('DOMSnapshot.captureSnapshot', {
|
|
297
|
-
computedStyles: ['font-size'],
|
|
306
|
+
computedStyles: ['font-size', 'visibility'],
|
|
298
307
|
});
|
|
299
308
|
|
|
300
309
|
const {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SyntheticLayoutShift = import("@paulirish/trace_engine").Types.
|
|
1
|
+
export type SyntheticLayoutShift = import("@paulirish/trace_engine").Types.Events.SyntheticLayoutShift;
|
|
2
2
|
export type SaneSyntheticLayoutShift = SyntheticLayoutShift & {
|
|
3
3
|
args: {
|
|
4
4
|
data: NonNullable<SyntheticLayoutShift["args"]["data"]>;
|
package/core/lib/trace-engine.js
CHANGED
|
@@ -2,7 +2,7 @@ import * as TraceEngine from '@paulirish/trace_engine';
|
|
|
2
2
|
|
|
3
3
|
import {polyfillDOMRect} from './polyfill-dom-rect.js';
|
|
4
4
|
|
|
5
|
-
/** @typedef {import('@paulirish/trace_engine').Types.
|
|
5
|
+
/** @typedef {import('@paulirish/trace_engine').Types.Events.SyntheticLayoutShift} SyntheticLayoutShift */
|
|
6
6
|
/** @typedef {SyntheticLayoutShift & {args: {data: NonNullable<SyntheticLayoutShift['args']['data']>}}} SaneSyntheticLayoutShift */
|
|
7
7
|
|
|
8
8
|
polyfillDOMRect();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lighthouse",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "12.
|
|
4
|
+
"version": "12.3.0",
|
|
5
5
|
"description": "Automated auditing, performance metrics, and best practices for the web.",
|
|
6
6
|
"main": "./core/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"pako": "^2.0.3",
|
|
168
168
|
"preact": "^10.7.2",
|
|
169
169
|
"pretty-json-stringify": "^0.0.2",
|
|
170
|
-
"puppeteer": "^23.
|
|
170
|
+
"puppeteer": "^23.10.4",
|
|
171
171
|
"resolve": "^1.22.1",
|
|
172
172
|
"rollup": "^2.52.7",
|
|
173
173
|
"rollup-plugin-polyfill-node": "^0.12.0",
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
"webtreemap-cdt": "^3.2.1"
|
|
182
182
|
},
|
|
183
183
|
"dependencies": {
|
|
184
|
-
"@paulirish/trace_engine": "0.0.
|
|
184
|
+
"@paulirish/trace_engine": "0.0.39",
|
|
185
185
|
"@sentry/node": "^7.0.0",
|
|
186
186
|
"axe-core": "^4.10.2",
|
|
187
187
|
"chrome-launcher": "^1.1.2",
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"metaviewport-parser": "0.3.0",
|
|
201
201
|
"open": "^8.4.0",
|
|
202
202
|
"parse-cache-control": "1.0.1",
|
|
203
|
-
"puppeteer-core": "^23.
|
|
203
|
+
"puppeteer-core": "^23.10.4",
|
|
204
204
|
"robots-parser": "^3.0.1",
|
|
205
205
|
"semver": "^5.3.0",
|
|
206
206
|
"speedline-core": "^1.4.3",
|
|
@@ -2621,6 +2621,66 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "Lighthouse User Flow Report"
|
|
2623
2623
|
},
|
|
2624
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
+
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2626
|
+
},
|
|
2627
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
+
"message": "أسباب تغييرات التصميم"
|
|
2629
|
+
},
|
|
2630
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
+
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
|
+
},
|
|
2633
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
+
"message": "وقت الاستجابة لطلب المستند"
|
|
2635
|
+
},
|
|
2636
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
+
"message": "يمكنك ضبط [font-display](https://developer.chrome.com/blog/font-display) على swap أو optional لضمان ظهور النص بشكل ثابت. ويمكن تحسين swap بشكل أكبر للتخفيف من تغييرات التصميم باستخدام [إجراءات تجاوز مقاييس الخطوط](https://developer.chrome.com/blog/font-fallbacks)."
|
|
2638
|
+
},
|
|
2639
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
+
"message": "عرض الخط"
|
|
2641
|
+
},
|
|
2642
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
+
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
|
+
},
|
|
2645
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
+
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2647
|
+
},
|
|
2648
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
+
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2650
|
+
},
|
|
2651
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
+
"message": "الاطّلاع على طلبات LCP"
|
|
2653
|
+
},
|
|
2654
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
+
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2656
|
+
},
|
|
2657
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
+
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2659
|
+
},
|
|
2660
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
+
"message": "تؤدي الطلبات إلى حظر العرض الأوّلي للصفحة، ما قد يُبطئ سرعة عرض أكبر محتوى مرئي (LCP). ويمكن [تأجيل هذه الطلبات](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/) أو تضمينها لإخراجها من المسار الحرج."
|
|
2662
|
+
},
|
|
2663
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
+
"message": "طلبات حظر العرض"
|
|
2665
|
+
},
|
|
2666
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
+
"message": "إذا ظلت تكاليف ميزة \"إعادة احتساب النمط\" مرتفعة، يمكن أن يؤدي تحسين أداة الاختيار إلى خفضها. يمكنك [تحسين أدوات الاختيار](https://developer.chrome.com/docs/devtools/performance/selector-stats) من خلال زيادة الوقت المنقضي وزيادة النسبة المئوية للمسار البطيء. وسيؤدي استخدام أدوات الاختيار الأبسط وعدد أدوات الاختيار الأقل ونموذج DOM الأصغر ونموذج DOM الأقل تعقيدًا إلى تقليل تكاليف المطابقة."
|
|
2668
|
+
},
|
|
2669
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
+
"message": "تكاليف أداة اختيار لغة CSS"
|
|
2671
|
+
},
|
|
2672
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
+
"message": "يمكن أن يؤثر الرمز البرمجي التابع لجهة خارجية بشكل كبير في أداء التحميل. [يمكنك تقليل تحميل الرموز البرمجية التابعة لجهات خارجية وتأجيله](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)، ومنح الأولوية لمحتوى صفحتك."
|
|
2674
|
+
},
|
|
2675
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
+
"message": "الجهات الخارجية"
|
|
2677
|
+
},
|
|
2678
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
+
"message": "إنّ إطار عرض الصفحة غير محسّن للأجهزة الجوّالة، لذا قد يتم [تأخير التفاعلات التي تتم من خلال النقر بمقدار 300 ملي ثانية على الأكثر](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
+
},
|
|
2681
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
+
"message": "إطار العرض غير محسَّن للأجهزة الجوّالة"
|
|
2683
|
+
},
|
|
2624
2684
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2625
2685
|
"message": "For animated content, use [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) to minimize CPU usage when the content is offscreen."
|
|
2626
2686
|
},
|
|
@@ -2621,6 +2621,66 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "تقرير تدفق المستخدمين في أداة Lighthouse"
|
|
2623
2623
|
},
|
|
2624
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
+
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2626
|
+
},
|
|
2627
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
+
"message": "أسباب تغييرات التصميم"
|
|
2629
|
+
},
|
|
2630
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
+
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
|
+
},
|
|
2633
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
+
"message": "وقت الاستجابة لطلب المستند"
|
|
2635
|
+
},
|
|
2636
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
+
"message": "يمكنك ضبط [font-display](https://developer.chrome.com/blog/font-display) على swap أو optional لضمان ظهور النص بشكل ثابت. ويمكن تحسين swap بشكل أكبر للتخفيف من تغييرات التصميم باستخدام [إجراءات تجاوز مقاييس الخطوط](https://developer.chrome.com/blog/font-fallbacks)."
|
|
2638
|
+
},
|
|
2639
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
+
"message": "عرض الخط"
|
|
2641
|
+
},
|
|
2642
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
+
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
|
+
},
|
|
2645
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
+
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2647
|
+
},
|
|
2648
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
+
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2650
|
+
},
|
|
2651
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
+
"message": "الاطّلاع على طلبات LCP"
|
|
2653
|
+
},
|
|
2654
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
+
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2656
|
+
},
|
|
2657
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
+
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2659
|
+
},
|
|
2660
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
+
"message": "تؤدي الطلبات إلى حظر العرض الأوّلي للصفحة، ما قد يُبطئ سرعة عرض أكبر محتوى مرئي (LCP). ويمكن [تأجيل هذه الطلبات](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/) أو تضمينها لإخراجها من المسار الحرج."
|
|
2662
|
+
},
|
|
2663
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
+
"message": "طلبات حظر العرض"
|
|
2665
|
+
},
|
|
2666
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
+
"message": "إذا ظلت تكاليف ميزة \"إعادة احتساب النمط\" مرتفعة، يمكن أن يؤدي تحسين أداة الاختيار إلى خفضها. يمكنك [تحسين أدوات الاختيار](https://developer.chrome.com/docs/devtools/performance/selector-stats) من خلال زيادة الوقت المنقضي وزيادة النسبة المئوية للمسار البطيء. وسيؤدي استخدام أدوات الاختيار الأبسط وعدد أدوات الاختيار الأقل ونموذج DOM الأصغر ونموذج DOM الأقل تعقيدًا إلى تقليل تكاليف المطابقة."
|
|
2668
|
+
},
|
|
2669
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
+
"message": "تكاليف أداة اختيار لغة CSS"
|
|
2671
|
+
},
|
|
2672
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
+
"message": "يمكن أن يؤثر الرمز البرمجي التابع لجهة خارجية بشكل كبير في أداء التحميل. [يمكنك تقليل تحميل الرموز البرمجية التابعة لجهات خارجية وتأجيله](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)، ومنح الأولوية لمحتوى صفحتك."
|
|
2674
|
+
},
|
|
2675
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
+
"message": "الجهات الخارجية"
|
|
2677
|
+
},
|
|
2678
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
+
"message": "إنّ إطار عرض الصفحة غير محسّن للأجهزة الجوّالة، لذا قد يتم [تأخير التفاعلات التي تتم من خلال النقر بمقدار 300 ملي ثانية على الأكثر](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
+
},
|
|
2681
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
+
"message": "إطار العرض غير محسَّن للأجهزة الجوّالة"
|
|
2683
|
+
},
|
|
2624
2684
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2625
2685
|
"message": "بالنسبة إلى المحتوى الذي يتضمن صورًا متحركة، يمكنك استخدام [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) لتقليل استخدام وحدة المعالجة المركزية (CPU) عندما يكون المحتوى خارج الشاشة."
|
|
2626
2686
|
},
|
|
@@ -2621,6 +2621,66 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "Отчет на Lighthouse за потребителската навигация"
|
|
2623
2623
|
},
|
|
2624
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
+
"message": "Структурни промени настъпват, когато елементите се преместват без взаимодействие от страна на потребителя. [Проучете причините за структурните промени](https://web.dev/articles/optimize-cls), като например добавяне или премахване на елементи или промяна на шрифтовете им при зареждане на страницата."
|
|
2626
|
+
},
|
|
2627
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
+
"message": "Причинители на структурни промени"
|
|
2629
|
+
},
|
|
2630
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
+
"message": "Първата мрежова заявка е най-важна. Намалете забавянето ѝ, като избягвате пренасочвания, осигурявате бърз отговор от сървъра и активирате компресирането на текста."
|
|
2632
|
+
},
|
|
2633
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
+
"message": "Забавяне на заявката за документ"
|
|
2635
|
+
},
|
|
2636
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
+
"message": "Добре е да зададете swap или optional за [font-display](https://developer.chrome.com/blog/font-display), така че текстът да е постоянно видим. swap може да се оптимизира допълнително чрез [замяна на метриките на шрифта](https://developer.chrome.com/blog/font-fallbacks), за да се намалят разместванията в оформлението."
|
|
2638
|
+
},
|
|
2639
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
+
"message": "Показване на шрифта"
|
|
2641
|
+
},
|
|
2642
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
+
"message": "Започнете проверката от най-продължителната фаза. [Забавянията могат да бъдат сведени до минимум](https://web.dev/articles/optimize-inp#optimize_interactions). За да ускорите обработката, [оптимизирайте работата на основната нишка](https://web.dev/articles/optimize-long-tasks), която често е JS."
|
|
2644
|
+
},
|
|
2645
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
+
"message": "INP по фаза"
|
|
2647
|
+
},
|
|
2648
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
+
"message": "Оптимизирайте LCP, като направите изображението, представляващо LCP, незабавно [откриваемо](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) в HTML кода и [избягвате забавеното зареждане](https://web.dev/articles/lcp-lazy-loading)"
|
|
2650
|
+
},
|
|
2651
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
+
"message": "Откриване на заявките за LCP"
|
|
2653
|
+
},
|
|
2654
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
+
"message": "За всяка [фаза има конкретни стратегии за подобряване](https://web.dev/articles/optimize-lcp#lcp-breakdown). В идеалния случай по-голямата част от времето за LCP трябва да премине в зареждане на ресурсите, а не да е свързана със забавяния."
|
|
2656
|
+
},
|
|
2657
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
+
"message": "LCP по фаза"
|
|
2659
|
+
},
|
|
2660
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
+
"message": "Заявки блокират първоначалното рендериране на страницата, което може да забави LCP. Тези заявки могат да бъдат преместени извън критичния път чрез [отлагане или вграждане](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/)."
|
|
2662
|
+
},
|
|
2663
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
+
"message": "Заявки за блокиране на рендерирането"
|
|
2665
|
+
},
|
|
2666
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
+
"message": "Ако преизчисляването на стиловете продължава да отнема дълго време, оптимизирането на селекторите може да намали забавянето. [Оптимизирайте селекторите](https://developer.chrome.com/docs/devtools/performance/selector-stats), които отнемат повече време и имат по-голям процент несъответствия с бавен път. Опростяването на селекторите и намаляването на броя им, както и намаляването на размера и дълбочината на DOM ще ускорят намирането на съответствия."
|
|
2668
|
+
},
|
|
2669
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
+
"message": "Бавни CSS селектори"
|
|
2671
|
+
},
|
|
2672
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
+
"message": "Кодът от трети страни може сериозно да повлияе върху скоростта на зареждане. [Намалете и отложете зареждането на кода от трети страни](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/), за да приоритизирате съдържанието на страницата си."
|
|
2674
|
+
},
|
|
2675
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
+
"message": "Трети страни"
|
|
2677
|
+
},
|
|
2678
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
+
"message": "Прозоречният изглед на страницата не е оптимизиран за мобилни устройства, така че при взаимодействията с докосване може да има [забавяне до 300 мсек](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
+
},
|
|
2681
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
+
"message": "Прозоречният изглед не е оптимизиран за мобилни устройства"
|
|
2683
|
+
},
|
|
2624
2684
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2625
2685
|
"message": "При анимирано съдържание използвайте маркера [`amp-anim`](https://amp.dev/documentation/components/amp-anim/), за да намалите използването на процесора, когато съдържанието е извън екрана."
|
|
2626
2686
|
},
|
|
@@ -2658,55 +2718,55 @@
|
|
|
2658
2718
|
"message": "За да управлявате граничните точки за изображенията, бихте могли да използвате инструмента `BreakpointObserver` в Component Dev Kit (CDK). [Научете повече](https://material.angular.io/cdk/layout/overview)."
|
|
2659
2719
|
},
|
|
2660
2720
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | efficient-animated-content": {
|
|
2661
|
-
"message": "
|
|
2721
|
+
"message": "Добре е да качите своя `GIF` в услуга, която ще даде възможност да бъде вграден като видеоклип с HTML5."
|
|
2662
2722
|
},
|
|
2663
2723
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | modern-image-formats": {
|
|
2664
2724
|
"message": "Можете да конфигурирате на сайта си [графичните формати WebP със стил за ограничаване на възможността за преобразуване](https://www.drupal.org/docs/core-modules-and-themes/core-modules/image-module/working-with-images#styles)."
|
|
2665
2725
|
},
|
|
2666
2726
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | offscreen-images": {
|
|
2667
|
-
"message": "
|
|
2727
|
+
"message": "Добре е да конфигурирате метода за забавено зареждане на изображенията в `Drupal`. Инструментите за форматиране на полетата за изображения трябва да поддържат `lazy` или `eager`."
|
|
2668
2728
|
},
|
|
2669
2729
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | prioritize-lcp-image": {
|
|
2670
|
-
"message": "
|
|
2730
|
+
"message": "Ако най-големият елемент се добавя динамично към страницата, трябва да оптимизирате изображението, за да подобрите LCP. [Научете повече](https://www.smashingmagazine.com/2023/08/methods-improving-drupal-largest-contentful-paint-core-web-vital/)."
|
|
2671
2731
|
},
|
|
2672
2732
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | redirects": {
|
|
2673
|
-
"message": "
|
|
2733
|
+
"message": "Пренасочванията водят до допълнително забавяне на зареждането на страницата. Ако модулът за [пренасочване](https://www.drupal.org/project/redirect) е инсталиран, проверете дали ненужните пренасочвания могат да бъдат премахнати. [Научете повече](https://developers.google.com/web/tools/lighthouse/audits/redirects)."
|
|
2674
2734
|
},
|
|
2675
2735
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
|
|
2676
|
-
"message": "
|
|
2736
|
+
"message": "Добре е да използвате [модул](https://www.drupal.org/project/critical_css) за вграждане на важния CSS и JavaScript код и да отложите зареждането на второстепенните елементи на CSS или JavaScript чрез атрибута defer."
|
|
2677
2737
|
},
|
|
2678
2738
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | server-response-time": {
|
|
2679
|
-
"message": "
|
|
2739
|
+
"message": "Прехвърлете трафик с помощта на един или повече модули за кеширане на `Drupal`, като например `Internal Page Cache`, `Internal Dynamic Page Cache` и `BigPipe`. Комбинирайте ги със CDN, за да подобрите още повече времето за отговор. Сървърите ви за хостинг трябва да използват PHP OPcache. Бихте могли да използвате кеширане в паметта чрез решения като Redis или Memcached, за да се намали времето за изпълнение на заявките към базата от данни. И накрая, използвайте ефективни теми, модули и по-бързи сървъри, за да намалите времето за отговор на сървъра."
|
|
2680
2740
|
},
|
|
2681
2741
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | total-byte-weight": {
|
|
2682
|
-
"message": "
|
|
2742
|
+
"message": "Бихте могли да използвате [стилове за адаптивни изображения](https://www.drupal.org/documentation/modules/responsive_image), за да намалите размера на графичните файлове, зареждани на страницата ви. Ако си служите с `Views`, за да показвате няколко елемента със съдържание на една страница, можете да внедрите функция за страниране, за да ограничите броя елементи, които да се извеждат на страница."
|
|
2683
2743
|
},
|
|
2684
2744
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
|
|
2685
|
-
"message": "
|
|
2745
|
+
"message": "Трябва да активирате опцията Aggregate CSS files на страницата Administration » Configuration » Development."
|
|
2686
2746
|
},
|
|
2687
2747
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-javascript": {
|
|
2688
|
-
"message": "
|
|
2748
|
+
"message": "Трябва да активирате опцията Aggregate JavaScript files на страницата Administration » Configuration » Development."
|
|
2689
2749
|
},
|
|
2690
2750
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | unused-css-rules": {
|
|
2691
|
-
"message": "
|
|
2751
|
+
"message": "Бихте могли да премахнете неизползваните правила на CSS и да добавите само необходимите библиотеки на `Drupal` към съответната страница или компонент в нея. За подробности вижте [документацията на `Drupal`](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define). За да откриете включените библиотеки, които добавят ненужен CSS код, стартирайте инструмента за [обхват на кода](https://developer.chrome.com/docs/devtools/coverage) в Chrome DevTools. Можете да намерите проблемните тема или модул в URL адреса на стиловия лист, когато агрегирането на CSS е деактивирано в сайта ви на `Drupal`. Търсете теми/модули с много стилови листове в списъка, за които преобладава червеният цвят в диаграмата на инструмента. Тема или модул трябва да прикачват библиотека със стилови листове само ако тя действително се използва на страницата."
|
|
2692
2752
|
},
|
|
2693
2753
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | unused-javascript": {
|
|
2694
|
-
"message": "
|
|
2754
|
+
"message": "Бихте могли да премахнете неизползваните активи на JavaScript и да добавите само необходимите библиотеки на `Drupal` към съответната страница или компонент в нея. За подробности вижте [документацията на Drupal](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define). За да откриете включените библиотеки, които добавят ненужен JavaScript код, стартирайте инструмента за [обхват на кода](https://developer.chrome.com/docs/devtools/coverage) в Chrome DevTools. Можете да намерите проблемните тема или модул в URL адреса на скрипта, когато агрегирането на JavaScript е деактивирано в сайта ви на `Drupal`. Търсете теми/модули с много скриптове в списъка, за които преобладава червеният цвят в диаграмата на инструмента. Тема или модул трябва да прикачват библиотека със скриптове само ако тя действително се използва на страницата."
|
|
2695
2755
|
},
|
|
2696
2756
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | uses-long-cache-ttl": {
|
|
2697
|
-
"message": "
|
|
2757
|
+
"message": "Задайте опцията Browser and proxy cache maximum age на страницата Administration » Configuration » Development. Прочетете за [кеша в `Drupal` и оптимизирането с цел повишаване на ефективността](https://www.drupal.org/docs/8/api/cache-api/cache-api)."
|
|
2698
2758
|
},
|
|
2699
2759
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | uses-optimized-images": {
|
|
2700
|
-
"message": "
|
|
2760
|
+
"message": "Бихте могли да използвате [модул](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=image&solrsort=iss_project_release_usage+desc&op=Search), който автоматично оптимизира и намалява размера на качваните чрез сайта изображения, като същевременно запазва качеството им. Също така трябва да използвате стандартните [стилове за адаптивни изображения](https://www.drupal.org/documentation/modules/responsive_image), предоставени от `Drupal`, за всички графични файлове, рендерирани на сайта."
|
|
2701
2761
|
},
|
|
2702
2762
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | uses-rel-preconnect": {
|
|
2703
|
-
"message": "`Preconnect`
|
|
2763
|
+
"message": "Можете да добавите подсказки за ресурси `Preconnect` или `dns-prefetch`, като инсталирате и конфигурирате [модул](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=Preconnect&solrsort=score+desc&op=Search), който дава възможност за използване на такива подсказки за потребителски агенти."
|
|
2704
2764
|
},
|
|
2705
2765
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": {
|
|
2706
|
-
"message": "
|
|
2766
|
+
"message": "Трябва да използвате стандартните [стилове за адаптивни изображения](https://www.drupal.org/documentation/modules/responsive_image), предоставени от `Drupal`. Прилагайте тези стилове при рендериране на графични полета посредством режими на преглед, изгледи или изображения, качени чрез WYSIWYG редактора."
|
|
2707
2767
|
},
|
|
2708
2768
|
"node_modules/lighthouse-stack-packs/packs/drupal.js | uses-text-compression": {
|
|
2709
|
-
"message": "
|
|
2769
|
+
"message": "При показването на текстови ресурси трябва да се използва компресиране (gzip, deflate или brotli), за да се намали общият пренос на данни. Бихте могли да използвате CDN, която поддържа това по подразбиране, или да конфигурирате уеб сървъра така, че да изпълнява тази операция. [Научете повече](https://developers.google.com/web/tools/lighthouse/audits/text-compression)."
|
|
2710
2770
|
},
|
|
2711
2771
|
"node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": {
|
|
2712
2772
|
"message": "Използвайте [Ezoic Leap](https://pubdash.ezoic.com/speed) и активирайте `Optimize Fonts`, за да се възползвате автоматично от функцията `font-display` на CSS, така че текстът да е видим за потребителите, докато уеб шрифтовете се зареждат."
|
|
@@ -3036,7 +3096,7 @@
|
|
|
3036
3096
|
"message": "Има различни приставки за WordPress, с чиято помощ можете [да вградите важни активи](https://wordpress.org/plugins/search/critical+css/) или [да отложите зареждането на не толкова важни ресурси](https://wordpress.org/plugins/search/defer+css+javascript/). Имайте предвид, че оптимизациите, извършвани чрез тези приставки, може да възпрепятстват работата на функциите на темата ви или други приставки, така че вероятно ще се наложи да промените кода."
|
|
3037
3097
|
},
|
|
3038
3098
|
"node_modules/lighthouse-stack-packs/packs/wordpress.js | server-response-time": {
|
|
3039
|
-
"message": "
|
|
3099
|
+
"message": "Изберете олекотена тема (в идеалния случай такава с блокове) и внедрете пълно кеширане на страницата или решение за статичен сайт. Деактивирайте ненужните приставки, за да намалите използваните от сървъра ресурси. Добре е да надстроите услугата си за хостинг си до управлявана или специализирана."
|
|
3040
3100
|
},
|
|
3041
3101
|
"node_modules/lighthouse-stack-packs/packs/wordpress.js | total-byte-weight": {
|
|
3042
3102
|
"message": "Обмислете възможността да показвате извадки в списъците си с публикации (напр. чрез маркера more), да намалите броя на публикациите, извеждани на дадена страница, да разделите дългите публикации на няколко страници или да използвате приставка, която да забави зареждането на коментарите."
|