Cannot get AutocompleteFieldWidgeet to work with a source binder

I have checked out your repo and replace the SourceBinderVocabulary with:

<!-- configure.zcml -->
<utility
  component=".sources.italian_cities_factory"
  name="italian-cities"
  provides="zope.schema.interfaces.IVocabularyFactory"
  />
# source.py
from zope.interface import implementer
from zope.schema.vocabulary import SimpleTerm
from zope.schema.vocabulary import SimpleVocabulary


def italian_cities_factory(context):

    return SimpleVocabulary((
        SimpleTerm('Bologna', 'bologna', 'Bologna'),
        SimpleTerm('Roma', 'roma', 'Roma'),
        SimpleTerm('Milano', 'milano', 'Milano'),
        SimpleTerm('Palermo', 'palermo', 'Palermo'),
        SimpleTerm('Sorrento', 'sorrento', 'Sorrento')))
# city.py
from plone.autoform import directives
from plone.dexterity.content import Item
from plone.supermodel import model
from plone.app.z3cform.widget import AjaxSelectFieldWidget
from zope.interface import implementer
from zope import schema


class ICity(model.Schema):
    """ Marker interface and Dexterity Python Schema for City
    """
    city = schema.Choice(
        title=u"City name",
        description=u"For example: Bologna, Roma, etc...",
        source="italian-cities",
    )
    directives.widget(
        'city',
        AjaxSelectFieldWidget,
        source="italian-cities"
    )

@implementer(ICity)
class City(Item):
    """
    """

and all is fine, no errors, no tracebacks.