No Code Attached Yet
avatar Otto-Deviant1904
Otto-Deviant1904
24 Aug 2026

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

  1. Enable the Schemaorg JobPosting plugin.
  2. Edit an article, choose schema type JobPosting, set Job Location Type = Hybrid.
  3. Leave the physical jobLocation fields empty.
  4. 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

  • Joomla 5.4-dev
  • Related: #48238 fixed invalid jobLocationType values; this is the remaining hybrid edge case.
avatar Otto-Deviant1904 Otto-Deviant1904 - open - 24 Aug 2026
avatar joomla-cms-bot joomla-cms-bot - change - 24 Aug 2026
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 24 Aug 2026
avatar richard67
richard67 - comment - 25 Aug 2026
* `jobLocationType` is omitted when Hybrid is selected but no `jobLocation` was provided (fall back to plain `JobPosting`), or

This could be a possible way.

Or maybe better change jobLocationType from Hybrid to Telecommute if no jobLocation is provided.

* The form requires `jobLocation` input when Hybrid is chosen.

Unfortunately our form validation does not support a conditional required attribute.

There was a PR proposed to implement that, but it was rejected, see PR #37798 .

avatar Otto-Deviant1904
Otto-Deviant1904 - comment - 26 Aug 2026

Thanks @richard67. One thing worth noting: since #48238 the plugin already maps Hybrid to jobLocationType: TELECOMMUTE unconditionally (JobPosting.php), so a hybrid posting without a physical jobLocation currently gets exactly the fallback you described. Implementing that suggestion would be a no-op.

The open question is therefore whether the current output is acceptable or should change:

  • a) Keep as is (TELECOMMUTE, no location info) — note Google's doc marks jobLocation as required unless applicantLocationRequirements is present, which Joomla's form doesn't offer
  • b) Omit jobLocationType when jobLocation is empty

Skipping the form-required route since conditional validation isn't supported per #37798.

Happy to prepare a PR for whichever direction you prefer, or close the issue if the current behavior is considered fine.

Add a Comment

Login with GitHub to post a comment