This is an announcement for a significant, but not breaking, change to the response format of the wbsearchentities API. So far, each search result has included "label" or "description" members- which included the label/description of the matched entity- so that it could be shown to users. However, these were plain strings with no indication of the language of the label or description: if language fallback happened (e.g. if the search was in Arabic, but the item only had an English description), then there would be no indication of this in the response. Users of the API couldn’t know what the language of the returned label/description was without a separate API call to retrieve the entity’s data. This is for example necessary for screen readers to read out the label/description in the correct language. (We will follow up with other changes to make use of it in the Wikibase UI, so that screen readers there are getting a better indication of which language to read out.)
We have resolved this with the addition of a new "display" member to the search result structure, which contains a "label" and "description" that are not plain strings, but rather objects with "language" and "value" members (like labels and descriptions in the normal JSON serialization). The old "label" and "description" fields are still there, but deprecated: we recommend that you don’t use them in new code. Please note that, just like the "label" and "description" were always optional (i.e. could be missing for entities that had no label or description available in the request language or a fallback language), so the "label" and "description" in the new response are also optional (under the same conditions).
This change was already deployed to Beta Wikidata, Test Wikidata, and Wikidata. If you have any questions or feedback, please feel free to let us know in this ticket.