Skip to content

feat(contacts): support pronouns property - #5639

Open
xhon-pelushi wants to merge 1 commit into
nextcloud:mainfrom
xhon-pelushi:feat/pronouns-5108
Open

xhon-pelushi wants to merge 1 commit into
nextcloud:mainfrom
xhon-pelushi:feat/pronouns-5108

Conversation

@xhon-pelushi

Copy link
Copy Markdown

Summary

  • Add RFC 9554 PRONOUNS as a repeatable text contact property.
  • Include it in lightweight CardDAV property fetches and cover serialization with Jest.

Closes #5108

Test plan

  • Jest: rfcProps + contact model tests
  • npm run build
  • UI: add/edit pronouns on a contact and verify round-trip save/reload

@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

@GVodyanov

Copy link
Copy Markdown
Contributor

@hamza221 This respects the RFC right? Because code looks good

@EnbyAce

EnbyAce commented Aug 27, 2026

Copy link
Copy Markdown

I think it respects the RFC, based on the changes to the tests/javascript/models/rfcProps.test.js file. The pronouns field should match PRONOUNS:they/them exactly, which does respect RFC 9554.

I don't know how Nextcloud's Contacts app serializes the properties, but RFC9554 also mentions some optional parameters that don't seem to be mentioned anywhere in the commit:

  • LANGUAGE
  • PREF
  • TYPE
  • ALTID

@hamza221

hamza221 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

It doesn't look like there's a way to make this interoperable. google contacts doesn't seem to have a pronouns field and apple doesn't save it to vcf and doesn't read it either.
Any ideas about other clients that support this property ?

@EnbyAce

EnbyAce commented Oct 11, 2026

Copy link
Copy Markdown

It doesn't look like there's a way to make this interoperable. google contacts doesn't seem to have a pronouns field and apple doesn't save it to vcf and doesn't read it either. Any ideas about other clients that support this property ?

I don't know of any mobile contacts apps that support the PRONOUNS field, but the mail app version 5.12.4 does show information stored about a contact when writing an email to them.
E.g. when writing an email to hello@example.com and I have a contact which has hello@example.com attached as email and e.g. 19911011 as BDAY property, the mail app would show the contact's birthday to me. (Not actually tested on the BDAY property, but it does definitely work for address etc.)

Would the mail app also show this new PRONOUNS field?

Closes nextcloud#5108

Signed-off-by: xhon-pelushi <xhon@pelushi.com>
Comment thread src/models/contact.js

export const MinimalContactProperties = [
'EMAIL', 'UID', 'TEL', 'CATEGORIES', 'FN', 'ORG', 'N', 'X-PHONETIC-FIRST-NAME', 'X-PHONETIC-LAST-NAME', 'X-MANAGERSNAME', 'TITLE', 'NOTE', 'RELATED',
'EMAIL', 'UID', 'TEL', 'CATEGORIES', 'FN', 'ORG', 'N', 'X-PHONETIC-FIRST-NAME', 'X-PHONETIC-LAST-NAME', 'X-MANAGERSNAME', 'TITLE', 'NOTE', 'RELATED', 'PRONOUNS',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this line should be dropped. we don't want to search on Pronoun

Comment thread src/models/rfcProps.js
pronouns: {
multiple: true,
readableName: t('contacts', 'Pronouns'),
icon: 'icon-gender',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This icon is already used for gender, @kra-mo , @nimishavijay (as vacation replacement) any recommendation on icon choice ?

Comment on lines +65 to +68
test('Test pronouns are included in the lightweight property list', () => {
expect(MinimalContactProperties).toContain('PRONOUNS')
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
test('Test pronouns are included in the lightweight property list', () => {
expect(MinimalContactProperties).toContain('PRONOUNS')
})

*/

import Contact from '../../../src/models/contact'
import Contact, { MinimalContactProperties } from '../../../src/models/contact'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import Contact, { MinimalContactProperties } from '../../../src/models/contact'
import Contact from '../../../src/models/contact'

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2. developing Work in progress enhancement New feature or request feedback-requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support pronouns for contacts

4 participants