axyseo 2025.1.0-blog.11 → 2025.1.0-blog.12
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/build/cjs/scoring/assessments/seo/TextImagesAssessment.js +4 -4
- package/build/cjs/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
- package/build/esm/scoring/assessments/seo/TextImagesAssessment.js +4 -4
- package/build/esm/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
- package/package.json +1 -1
|
@@ -114,14 +114,14 @@ class TextImagesAssessment extends _assessment.default {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
* Checks whether the paper has
|
|
117
|
+
* Checks whether the paper has images.
|
|
118
118
|
*
|
|
119
119
|
* @param {Paper} paper The paper to use for the assessment.
|
|
120
|
-
* @param researcher
|
|
121
|
-
* @returns {boolean} True when there
|
|
120
|
+
* @param {Researcher} researcher The researcher to use for analysis.
|
|
121
|
+
* @returns {boolean} True when there are images in the content.
|
|
122
122
|
*/
|
|
123
123
|
isApplicable(paper, researcher) {
|
|
124
|
-
return
|
|
124
|
+
return researcher.getResearch('imageCount') > 0;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
exports.default = TextImagesAssessment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextImagesAssessment.js","names":["_lodash","require","_assessment","_interopRequireDefault","_AssessmentResult","_helpers","_polarisIcons","_analysis","e","__esModule","default","TextImagesAssessment","Assessment","constructor","config","defaultConfig","id","TEXT_IMAGES_ID","ctaType","docUrl","fixPosition","icon","ExternalIcon","priority","title","content","good","improve","bad","identifier","_config","merge","getResult","paper","researcher","assessmentResult","AssessmentResult","altTagsProperties","getResearch","imageCount","calculatedResult","calculateResult","setScore","score","setStatus","status","imagesNoAlt","noAlt","getScore","TECHNICAL_SEO_POINTS","fix","shop","data","console","log","body","altText","name","parser","DOMParser","doc","parseFromString","imgTags","querySelectorAll","forEach","img","hasAttribute","getAttribute","setAttribute","innerHTML","isApplicable","exports"],"sources":["../../../../../src/scoring/assessments/seo/TextImagesAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {checkMissingAlt} from '../../../helpers';\nimport {ExternalIcon} from '@shopify/polaris-icons';\nimport {TECHNICAL_SEO_POINTS, TEXT_IMAGES_ID} from '@axyseo/const/analysis';\n\n/**\n * Represents the assessment that assesses the SEO title width and gives the feedback accordingly.\n */\nexport default class TextImagesAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: TEXT_IMAGES_ID,\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#alt-text',\n fixPosition: 'description',\n icon: ExternalIcon,\n priority: 'high',\n title: 'Alt text',\n content: {\n good: 'All images have descriptive and relevant alt text.',\n improve: '',\n bad: 'Missing alt text. Add descriptive alt text for accessibility and SEO.'\n }\n };\n\n this.identifier = TEXT_IMAGES_ID;\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the h1 research and based on this returns an assessment result with a score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n * @returns {AssessmentResult} The assessment result.\n */\n getResult({paper, researcher}) {\n const assessmentResult = new AssessmentResult({config: this._config});\n this.altTagsProperties = researcher.getResearch('altTagCount');\n this.imageCount = researcher.getResearch('imageCount');\n\n const calculatedResult = this.calculateResult(paper);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n\n return assessmentResult;\n }\n\n /**\n *\n * @returns {{score: number, status: string}}\n */\n calculateResult() {\n const imagesNoAlt = this.altTagsProperties.noAlt;\n\n let status = '';\n if (imagesNoAlt === this.imageCount || imagesNoAlt > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(TECHNICAL_SEO_POINTS, status);\n\n return {\n score,\n status\n };\n }\n\n /**\n *\n * @param shop\n * @param data\n * @returns {string}\n */\n fix({shop, data}) {\n if (!shop) {\n console.log('Shop is missing');\n return data.body || '';\n }\n\n if (!data.body) {\n console.log('body is missing');\n return '';\n }\n\n const altText = shop?.name || 'Shop' + ' | ' + data?.title || 'Title';\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(data.body, 'text/html');\n\n const imgTags = doc.querySelectorAll('img');\n\n imgTags.forEach(img => {\n if (!img.hasAttribute('alt') || img.getAttribute('alt') === '') {\n img.setAttribute('alt', altText);\n }\n });\n\n return doc.body.innerHTML;\n }\n\n /**\n * Checks whether the paper has
|
|
1
|
+
{"version":3,"file":"TextImagesAssessment.js","names":["_lodash","require","_assessment","_interopRequireDefault","_AssessmentResult","_helpers","_polarisIcons","_analysis","e","__esModule","default","TextImagesAssessment","Assessment","constructor","config","defaultConfig","id","TEXT_IMAGES_ID","ctaType","docUrl","fixPosition","icon","ExternalIcon","priority","title","content","good","improve","bad","identifier","_config","merge","getResult","paper","researcher","assessmentResult","AssessmentResult","altTagsProperties","getResearch","imageCount","calculatedResult","calculateResult","setScore","score","setStatus","status","imagesNoAlt","noAlt","getScore","TECHNICAL_SEO_POINTS","fix","shop","data","console","log","body","altText","name","parser","DOMParser","doc","parseFromString","imgTags","querySelectorAll","forEach","img","hasAttribute","getAttribute","setAttribute","innerHTML","isApplicable","exports"],"sources":["../../../../../src/scoring/assessments/seo/TextImagesAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {checkMissingAlt} from '../../../helpers';\nimport {ExternalIcon} from '@shopify/polaris-icons';\nimport {TECHNICAL_SEO_POINTS, TEXT_IMAGES_ID} from '@axyseo/const/analysis';\n\n/**\n * Represents the assessment that assesses the SEO title width and gives the feedback accordingly.\n */\nexport default class TextImagesAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: TEXT_IMAGES_ID,\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#alt-text',\n fixPosition: 'description',\n icon: ExternalIcon,\n priority: 'high',\n title: 'Alt text',\n content: {\n good: 'All images have descriptive and relevant alt text.',\n improve: '',\n bad: 'Missing alt text. Add descriptive alt text for accessibility and SEO.'\n }\n };\n\n this.identifier = TEXT_IMAGES_ID;\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the h1 research and based on this returns an assessment result with a score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n * @returns {AssessmentResult} The assessment result.\n */\n getResult({paper, researcher}) {\n const assessmentResult = new AssessmentResult({config: this._config});\n this.altTagsProperties = researcher.getResearch('altTagCount');\n this.imageCount = researcher.getResearch('imageCount');\n\n const calculatedResult = this.calculateResult(paper);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n\n return assessmentResult;\n }\n\n /**\n *\n * @returns {{score: number, status: string}}\n */\n calculateResult() {\n const imagesNoAlt = this.altTagsProperties.noAlt;\n\n let status = '';\n if (imagesNoAlt === this.imageCount || imagesNoAlt > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(TECHNICAL_SEO_POINTS, status);\n\n return {\n score,\n status\n };\n }\n\n /**\n *\n * @param shop\n * @param data\n * @returns {string}\n */\n fix({shop, data}) {\n if (!shop) {\n console.log('Shop is missing');\n return data.body || '';\n }\n\n if (!data.body) {\n console.log('body is missing');\n return '';\n }\n\n const altText = shop?.name || 'Shop' + ' | ' + data?.title || 'Title';\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(data.body, 'text/html');\n\n const imgTags = doc.querySelectorAll('img');\n\n imgTags.forEach(img => {\n if (!img.hasAttribute('alt') || img.getAttribute('alt') === '') {\n img.setAttribute('alt', altText);\n }\n });\n\n return doc.body.innerHTML;\n }\n\n /**\n * Checks whether the paper has images.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher to use for analysis.\n * @returns {boolean} True when there are images in the content.\n */\n isApplicable(paper, researcher) {\n return researcher.getResearch('imageCount') > 0;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -108,14 +108,14 @@ export default class TextImagesAssessment extends Assessment {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
|
-
* Checks whether the paper has
|
|
111
|
+
* Checks whether the paper has images.
|
|
112
112
|
*
|
|
113
113
|
* @param {Paper} paper The paper to use for the assessment.
|
|
114
|
-
* @param researcher
|
|
115
|
-
* @returns {boolean} True when there
|
|
114
|
+
* @param {Researcher} researcher The researcher to use for analysis.
|
|
115
|
+
* @returns {boolean} True when there are images in the content.
|
|
116
116
|
*/
|
|
117
117
|
isApplicable(paper, researcher) {
|
|
118
|
-
return
|
|
118
|
+
return researcher.getResearch('imageCount') > 0;
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
//# sourceMappingURL=TextImagesAssessment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextImagesAssessment.js","names":["merge","Assessment","AssessmentResult","checkMissingAlt","ExternalIcon","TECHNICAL_SEO_POINTS","TEXT_IMAGES_ID","TextImagesAssessment","constructor","config","defaultConfig","id","ctaType","docUrl","fixPosition","icon","priority","title","content","good","improve","bad","identifier","_config","getResult","paper","researcher","assessmentResult","altTagsProperties","getResearch","imageCount","calculatedResult","calculateResult","setScore","score","setStatus","status","imagesNoAlt","noAlt","getScore","fix","shop","data","console","log","body","altText","name","parser","DOMParser","doc","parseFromString","imgTags","querySelectorAll","forEach","img","hasAttribute","getAttribute","setAttribute","innerHTML","isApplicable"],"sources":["../../../../../src/scoring/assessments/seo/TextImagesAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {checkMissingAlt} from '../../../helpers';\nimport {ExternalIcon} from '@shopify/polaris-icons';\nimport {TECHNICAL_SEO_POINTS, TEXT_IMAGES_ID} from '@axyseo/const/analysis';\n\n/**\n * Represents the assessment that assesses the SEO title width and gives the feedback accordingly.\n */\nexport default class TextImagesAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: TEXT_IMAGES_ID,\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#alt-text',\n fixPosition: 'description',\n icon: ExternalIcon,\n priority: 'high',\n title: 'Alt text',\n content: {\n good: 'All images have descriptive and relevant alt text.',\n improve: '',\n bad: 'Missing alt text. Add descriptive alt text for accessibility and SEO.'\n }\n };\n\n this.identifier = TEXT_IMAGES_ID;\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the h1 research and based on this returns an assessment result with a score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n * @returns {AssessmentResult} The assessment result.\n */\n getResult({paper, researcher}) {\n const assessmentResult = new AssessmentResult({config: this._config});\n this.altTagsProperties = researcher.getResearch('altTagCount');\n this.imageCount = researcher.getResearch('imageCount');\n\n const calculatedResult = this.calculateResult(paper);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n\n return assessmentResult;\n }\n\n /**\n *\n * @returns {{score: number, status: string}}\n */\n calculateResult() {\n const imagesNoAlt = this.altTagsProperties.noAlt;\n\n let status = '';\n if (imagesNoAlt === this.imageCount || imagesNoAlt > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(TECHNICAL_SEO_POINTS, status);\n\n return {\n score,\n status\n };\n }\n\n /**\n *\n * @param shop\n * @param data\n * @returns {string}\n */\n fix({shop, data}) {\n if (!shop) {\n console.log('Shop is missing');\n return data.body || '';\n }\n\n if (!data.body) {\n console.log('body is missing');\n return '';\n }\n\n const altText = shop?.name || 'Shop' + ' | ' + data?.title || 'Title';\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(data.body, 'text/html');\n\n const imgTags = doc.querySelectorAll('img');\n\n imgTags.forEach(img => {\n if (!img.hasAttribute('alt') || img.getAttribute('alt') === '') {\n img.setAttribute('alt', altText);\n }\n });\n\n return doc.body.innerHTML;\n }\n\n /**\n * Checks whether the paper has
|
|
1
|
+
{"version":3,"file":"TextImagesAssessment.js","names":["merge","Assessment","AssessmentResult","checkMissingAlt","ExternalIcon","TECHNICAL_SEO_POINTS","TEXT_IMAGES_ID","TextImagesAssessment","constructor","config","defaultConfig","id","ctaType","docUrl","fixPosition","icon","priority","title","content","good","improve","bad","identifier","_config","getResult","paper","researcher","assessmentResult","altTagsProperties","getResearch","imageCount","calculatedResult","calculateResult","setScore","score","setStatus","status","imagesNoAlt","noAlt","getScore","fix","shop","data","console","log","body","altText","name","parser","DOMParser","doc","parseFromString","imgTags","querySelectorAll","forEach","img","hasAttribute","getAttribute","setAttribute","innerHTML","isApplicable"],"sources":["../../../../../src/scoring/assessments/seo/TextImagesAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {checkMissingAlt} from '../../../helpers';\nimport {ExternalIcon} from '@shopify/polaris-icons';\nimport {TECHNICAL_SEO_POINTS, TEXT_IMAGES_ID} from '@axyseo/const/analysis';\n\n/**\n * Represents the assessment that assesses the SEO title width and gives the feedback accordingly.\n */\nexport default class TextImagesAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: TEXT_IMAGES_ID,\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#alt-text',\n fixPosition: 'description',\n icon: ExternalIcon,\n priority: 'high',\n title: 'Alt text',\n content: {\n good: 'All images have descriptive and relevant alt text.',\n improve: '',\n bad: 'Missing alt text. Add descriptive alt text for accessibility and SEO.'\n }\n };\n\n this.identifier = TEXT_IMAGES_ID;\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the h1 research and based on this returns an assessment result with a score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n * @returns {AssessmentResult} The assessment result.\n */\n getResult({paper, researcher}) {\n const assessmentResult = new AssessmentResult({config: this._config});\n this.altTagsProperties = researcher.getResearch('altTagCount');\n this.imageCount = researcher.getResearch('imageCount');\n\n const calculatedResult = this.calculateResult(paper);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n\n return assessmentResult;\n }\n\n /**\n *\n * @returns {{score: number, status: string}}\n */\n calculateResult() {\n const imagesNoAlt = this.altTagsProperties.noAlt;\n\n let status = '';\n if (imagesNoAlt === this.imageCount || imagesNoAlt > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(TECHNICAL_SEO_POINTS, status);\n\n return {\n score,\n status\n };\n }\n\n /**\n *\n * @param shop\n * @param data\n * @returns {string}\n */\n fix({shop, data}) {\n if (!shop) {\n console.log('Shop is missing');\n return data.body || '';\n }\n\n if (!data.body) {\n console.log('body is missing');\n return '';\n }\n\n const altText = shop?.name || 'Shop' + ' | ' + data?.title || 'Title';\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(data.body, 'text/html');\n\n const imgTags = doc.querySelectorAll('img');\n\n imgTags.forEach(img => {\n if (!img.hasAttribute('alt') || img.getAttribute('alt') === '') {\n img.setAttribute('alt', altText);\n }\n });\n\n return doc.body.innerHTML;\n }\n\n /**\n * Checks whether the paper has images.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher to use for analysis.\n * @returns {boolean} True when there are images in the content.\n */\n isApplicable(paper, researcher) {\n return researcher.getResearch('imageCount') > 0;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|