Summary
The JobPosting schemaorg plugin maps a hybrid job to jobLocationType: "TELECOMMUTE":
https://github.com/joomla/joomla-cms/blob/5.4-dev/plugins/schemaorg/jobposting/src/Extension/JobPosting.php — case 'Hybrid': ['jobLocationType'] = 'TELECOMMUTE';
Per Google's Job Posting structured-data requirements, a hybrid job must be marked TELECOMMUTE combined with the physical jobLocation. The comment in the plugin itself states this. However, the form (plugins/schemaorg/jobposting/forms/schemaorg.xml) does not require jobLocation when jobLocationType: Hybrid is selected (the jobLocation subform has no showon/required rule tied to it), and the plugin does not validate it either.
Steps to reproduce
- Enable the Schemaorg JobPosting plugin.
- Edit an article, choose schema type JobPosting, set Job Location Type = Hybrid.
- Leave the physical
jobLocation fields empty.
- View page source — JSON-LD contains
"jobLocationType": "TELECOMMUTE" with no jobLocation.
Expected result
Either:
jobLocationType is omitted when Hybrid is selected but no jobLocation was provided (fall back to plain JobPosting), or
- The form requires
jobLocation input when Hybrid is chosen.
Actual result
Invalid combination per Google's rich-results requirements; the job posting is ineligible for Google Jobs rich results.
Additional information
Summary
The JobPosting schemaorg plugin maps a hybrid job to
jobLocationType: "TELECOMMUTE":https://github.com/joomla/joomla-cms/blob/5.4-dev/plugins/schemaorg/jobposting/src/Extension/JobPosting.php —
case 'Hybrid': ['jobLocationType'] = 'TELECOMMUTE';Per Google's Job Posting structured-data requirements, a hybrid job must be marked
TELECOMMUTEcombined with the physicaljobLocation. The comment in the plugin itself states this. However, the form (plugins/schemaorg/jobposting/forms/schemaorg.xml) does not requirejobLocationwhenjobLocationType: Hybridis selected (thejobLocationsubform has noshowon/required rule tied to it), and the plugin does not validate it either.Steps to reproduce
jobLocationfields empty."jobLocationType": "TELECOMMUTE"with nojobLocation.Expected result
Either:
jobLocationTypeis omitted when Hybrid is selected but nojobLocationwas provided (fall back to plainJobPosting), orjobLocationinput when Hybrid is chosen.Actual result
Invalid combination per Google's rich-results requirements; the job posting is ineligible for Google Jobs rich results.
Additional information